﻿2026-06-15T15:10:07.6420880Z ##[group]Run ./traceable-reqs check --json
2026-06-15T15:10:07.6421274Z [36;1m./traceable-reqs check --json[0m
2026-06-15T15:10:07.6434207Z shell: /usr/bin/bash -e {0}
2026-06-15T15:10:07.6434478Z ##[endgroup]
2026-06-15T15:10:07.6628614Z {
2026-06-15T15:10:07.6629445Z   "schemaVersion": 1,
2026-06-15T15:10:07.6629944Z   "summary": {
2026-06-15T15:10:07.6630403Z     "requirementCount": 212,
2026-06-15T15:10:07.6630935Z     "completeCount": 212,
2026-06-15T15:10:07.6631425Z     "incompleteCount": 0,
2026-06-15T15:10:07.6631910Z     "findingCount": 0
2026-06-15T15:10:07.6632350Z   },
2026-06-15T15:10:07.6632736Z   "requirements": [
2026-06-15T15:10:07.6633174Z     {
2026-06-15T15:10:07.6634086Z       "id": "REQ-API-1",
2026-06-15T15:10:07.6634734Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-15T15:10:07.6635431Z       "requiredStages": [
2026-06-15T15:10:07.6635813Z         "impl",
2026-06-15T15:10:07.6636166Z         "unit",
2026-06-15T15:10:07.6636498Z         "int"
2026-06-15T15:10:07.6636891Z       ],
2026-06-15T15:10:07.6637225Z       "stages": {
2026-06-15T15:10:07.6637582Z         "doc": {
2026-06-15T15:10:07.6637936Z           "complete": false,
2026-06-15T15:10:07.6638347Z           "evidence": []
2026-06-15T15:10:07.6638719Z         },
2026-06-15T15:10:07.6639146Z         "impl": {
2026-06-15T15:10:07.6639508Z           "complete": true,
2026-06-15T15:10:07.6639904Z           "evidence": [
2026-06-15T15:10:07.6640267Z             {
2026-06-15T15:10:07.6640653Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T15:10:07.6641134Z               "line": 15
2026-06-15T15:10:07.6641500Z             }
2026-06-15T15:10:07.6641836Z           ]
2026-06-15T15:10:07.6642175Z         },
2026-06-15T15:10:07.6642505Z         "int": {
2026-06-15T15:10:07.6642867Z           "complete": true,
2026-06-15T15:10:07.6643267Z           "evidence": [
2026-06-15T15:10:07.6643629Z             {
2026-06-15T15:10:07.6644020Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T15:10:07.6644524Z               "line": 13
2026-06-15T15:10:07.6644885Z             }
2026-06-15T15:10:07.6645224Z           ]
2026-06-15T15:10:07.6645548Z         },
2026-06-15T15:10:07.6645868Z         "unit": {
2026-06-15T15:10:07.6646215Z           "complete": true,
2026-06-15T15:10:07.6646587Z           "evidence": [
2026-06-15T15:10:07.6646933Z             {
2026-06-15T15:10:07.6647304Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T15:10:07.6647767Z               "line": 481
2026-06-15T15:10:07.6648137Z             },
2026-06-15T15:10:07.6648466Z             {
2026-06-15T15:10:07.6648848Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T15:10:07.6649406Z               "line": 519
2026-06-15T15:10:07.6649772Z             },
2026-06-15T15:10:07.6650087Z             {
2026-06-15T15:10:07.6650459Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T15:10:07.6650908Z               "line": 587
2026-06-15T15:10:07.6651275Z             }
2026-06-15T15:10:07.6651598Z           ]
2026-06-15T15:10:07.6651918Z         }
2026-06-15T15:10:07.6652226Z       }
2026-06-15T15:10:07.6652526Z     },
2026-06-15T15:10:07.6652855Z     {
2026-06-15T15:10:07.6653179Z       "id": "REQ-API-2",
2026-06-15T15:10:07.6653751Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-15T15:10:07.6654381Z       "requiredStages": [
2026-06-15T15:10:07.6654743Z         "impl",
2026-06-15T15:10:07.6655065Z         "unit",
2026-06-15T15:10:07.6655398Z         "int"
2026-06-15T15:10:07.6655717Z       ],
2026-06-15T15:10:07.6656018Z       "stages": {
2026-06-15T15:10:07.6656361Z         "doc": {
2026-06-15T15:10:07.6656727Z           "complete": false,
2026-06-15T15:10:07.6657118Z           "evidence": []
2026-06-15T15:10:07.6657465Z         },
2026-06-15T15:10:07.6657792Z         "impl": {
2026-06-15T15:10:07.6658140Z           "complete": true,
2026-06-15T15:10:07.6658523Z           "evidence": [
2026-06-15T15:10:07.6658880Z             {
2026-06-15T15:10:07.6659628Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T15:10:07.6660101Z               "line": 17
2026-06-15T15:10:07.6660447Z             },
2026-06-15T15:10:07.6660772Z             {
2026-06-15T15:10:07.6661153Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.6661605Z               "line": 20
2026-06-15T15:10:07.6661959Z             },
2026-06-15T15:10:07.6662278Z             {
2026-06-15T15:10:07.6662663Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.6663115Z               "line": 142
2026-06-15T15:10:07.6663476Z             },
2026-06-15T15:10:07.6663791Z             {
2026-06-15T15:10:07.6664478Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.6664923Z               "line": 24
2026-06-15T15:10:07.6665266Z             },
2026-06-15T15:10:07.6665592Z             {
2026-06-15T15:10:07.6665972Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.6666429Z               "line": 41
2026-06-15T15:10:07.6666787Z             },
2026-06-15T15:10:07.6667102Z             {
2026-06-15T15:10:07.6667475Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.6667936Z               "line": 209
2026-06-15T15:10:07.6668300Z             },
2026-06-15T15:10:07.6668628Z             {
2026-06-15T15:10:07.6669097Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.6669606Z               "line": 251
2026-06-15T15:10:07.6669969Z             },
2026-06-15T15:10:07.6670245Z             {
2026-06-15T15:10:07.6670512Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.6670826Z               "line": 330
2026-06-15T15:10:07.6671090Z             },
2026-06-15T15:10:07.6671294Z             {
2026-06-15T15:10:07.6671579Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.6671865Z               "line": 17
2026-06-15T15:10:07.6672137Z             },
2026-06-15T15:10:07.6672343Z             {
2026-06-15T15:10:07.6672630Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.6672916Z               "line": 30
2026-06-15T15:10:07.6673262Z             },
2026-06-15T15:10:07.6673584Z             {
2026-06-15T15:10:07.6673947Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.6674370Z               "line": 63
2026-06-15T15:10:07.6674704Z             },
2026-06-15T15:10:07.6674995Z             {
2026-06-15T15:10:07.6675338Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.6675759Z               "line": 77
2026-06-15T15:10:07.6676095Z             }
2026-06-15T15:10:07.6676408Z           ]
2026-06-15T15:10:07.6676694Z         },
2026-06-15T15:10:07.6676989Z         "int": {
2026-06-15T15:10:07.6677318Z           "complete": true,
2026-06-15T15:10:07.6677677Z           "evidence": [
2026-06-15T15:10:07.6678006Z             {
2026-06-15T15:10:07.6678374Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T15:10:07.6678738Z               "line": 14
2026-06-15T15:10:07.6679090Z             },
2026-06-15T15:10:07.6679314Z             {
2026-06-15T15:10:07.6679546Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T15:10:07.6679847Z               "line": 187
2026-06-15T15:10:07.6680067Z             }
2026-06-15T15:10:07.6680273Z           ]
2026-06-15T15:10:07.6680477Z         },
2026-06-15T15:10:07.6680677Z         "unit": {
2026-06-15T15:10:07.6680888Z           "complete": true,
2026-06-15T15:10:07.6681139Z           "evidence": [
2026-06-15T15:10:07.6681358Z             {
2026-06-15T15:10:07.6681597Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T15:10:07.6681878Z               "line": 82
2026-06-15T15:10:07.6682101Z             },
2026-06-15T15:10:07.6682322Z             {
2026-06-15T15:10:07.6682555Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.6682841Z               "line": 279
2026-06-15T15:10:07.6683069Z             },
2026-06-15T15:10:07.6683279Z             {
2026-06-15T15:10:07.6683693Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.6683982Z               "line": 585
2026-06-15T15:10:07.6684207Z             },
2026-06-15T15:10:07.6684406Z             {
2026-06-15T15:10:07.6686959Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.6687258Z               "line": 596
2026-06-15T15:10:07.6687492Z             },
2026-06-15T15:10:07.6687702Z             {
2026-06-15T15:10:07.6687961Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.6688261Z               "line": 749
2026-06-15T15:10:07.6688484Z             },
2026-06-15T15:10:07.6688694Z             {
2026-06-15T15:10:07.6689160Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.6689453Z               "line": 795
2026-06-15T15:10:07.6689678Z             },
2026-06-15T15:10:07.6689884Z             {
2026-06-15T15:10:07.6690135Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.6690416Z               "line": 143
2026-06-15T15:10:07.6690650Z             },
2026-06-15T15:10:07.6690861Z             {
2026-06-15T15:10:07.6691123Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.6691394Z               "line": 187
2026-06-15T15:10:07.6691676Z             }
2026-06-15T15:10:07.6691994Z           ]
2026-06-15T15:10:07.6692295Z         }
2026-06-15T15:10:07.6692595Z       }
2026-06-15T15:10:07.6692887Z     },
2026-06-15T15:10:07.6693172Z     {
2026-06-15T15:10:07.6693482Z       "id": "REQ-API-3",
2026-06-15T15:10:07.6693934Z       "title": "commune/signoff are file-drops, not commands",
2026-06-15T15:10:07.6694411Z       "requiredStages": [
2026-06-15T15:10:07.6694772Z         "impl",
2026-06-15T15:10:07.6695095Z         "unit",
2026-06-15T15:10:07.6695405Z         "int"
2026-06-15T15:10:07.6695706Z       ],
2026-06-15T15:10:07.6696007Z       "stages": {
2026-06-15T15:10:07.6696317Z         "doc": {
2026-06-15T15:10:07.6696674Z           "complete": false,
2026-06-15T15:10:07.6697045Z           "evidence": []
2026-06-15T15:10:07.6697390Z         },
2026-06-15T15:10:07.6697691Z         "impl": {
2026-06-15T15:10:07.6698024Z           "complete": true,
2026-06-15T15:10:07.6698372Z           "evidence": [
2026-06-15T15:10:07.6698706Z             {
2026-06-15T15:10:07.6699146Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T15:10:07.6699816Z               "line": 27
2026-06-15T15:10:07.6700328Z             },
2026-06-15T15:10:07.6700787Z             {
2026-06-15T15:10:07.6701349Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.6701878Z               "line": 442
2026-06-15T15:10:07.6702366Z             }
2026-06-15T15:10:07.6702945Z           ]
2026-06-15T15:10:07.6703408Z         },
2026-06-15T15:10:07.6703818Z         "int": {
2026-06-15T15:10:07.6704277Z           "complete": true,
2026-06-15T15:10:07.6732671Z           "evidence": [
2026-06-15T15:10:07.6733039Z             {
2026-06-15T15:10:07.6733426Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T15:10:07.6733911Z               "line": 261
2026-06-15T15:10:07.6734249Z             }
2026-06-15T15:10:07.6734544Z           ]
2026-06-15T15:10:07.6734831Z         },
2026-06-15T15:10:07.6735123Z         "unit": {
2026-06-15T15:10:07.6735451Z           "complete": true,
2026-06-15T15:10:07.6735803Z           "evidence": [
2026-06-15T15:10:07.6736142Z             {
2026-06-15T15:10:07.6736513Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T15:10:07.6736945Z               "line": 280
2026-06-15T15:10:07.6737269Z             },
2026-06-15T15:10:07.6737575Z             {
2026-06-15T15:10:07.6737956Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.6738408Z               "line": 824
2026-06-15T15:10:07.6738737Z             }
2026-06-15T15:10:07.6739129Z           ]
2026-06-15T15:10:07.6739428Z         }
2026-06-15T15:10:07.6739725Z       }
2026-06-15T15:10:07.6740011Z     },
2026-06-15T15:10:07.6740303Z     {
2026-06-15T15:10:07.6740608Z       "id": "REQ-ARCH-1",
2026-06-15T15:10:07.6741276Z       "title": "Many small acyclically-layered crates",
2026-06-15T15:10:07.6741721Z       "requiredStages": [
2026-06-15T15:10:07.6742080Z         "impl"
2026-06-15T15:10:07.6742383Z       ],
2026-06-15T15:10:07.6742694Z       "stages": {
2026-06-15T15:10:07.6743008Z         "doc": {
2026-06-15T15:10:07.6743347Z           "complete": false,
2026-06-15T15:10:07.6743719Z           "evidence": []
2026-06-15T15:10:07.6744052Z         },
2026-06-15T15:10:07.6744353Z         "impl": {
2026-06-15T15:10:07.6744691Z           "complete": true,
2026-06-15T15:10:07.6745053Z           "evidence": [
2026-06-15T15:10:07.6745387Z             {
2026-06-15T15:10:07.6745912Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-15T15:10:07.6746345Z               "line": 18
2026-06-15T15:10:07.6746673Z             },
2026-06-15T15:10:07.6746964Z             {
2026-06-15T15:10:07.6747333Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-15T15:10:07.6747762Z               "line": 12
2026-06-15T15:10:07.6748096Z             },
2026-06-15T15:10:07.6749183Z             {
2026-06-15T15:10:07.6749627Z               "path": "crates/spt-store/src/lib.rs",
2026-06-15T15:10:07.6750050Z               "line": 12
2026-06-15T15:10:07.6750300Z             }
2026-06-15T15:10:07.6750510Z           ]
2026-06-15T15:10:07.6750697Z         },
2026-06-15T15:10:07.6750901Z         "int": {
2026-06-15T15:10:07.6751130Z           "complete": false,
2026-06-15T15:10:07.6751374Z           "evidence": []
2026-06-15T15:10:07.6751598Z         },
2026-06-15T15:10:07.6751797Z         "unit": {
2026-06-15T15:10:07.6752022Z           "complete": false,
2026-06-15T15:10:07.6752281Z           "evidence": []
2026-06-15T15:10:07.6752511Z         }
2026-06-15T15:10:07.6752710Z       }
2026-06-15T15:10:07.6752896Z     },
2026-06-15T15:10:07.6753096Z     {
2026-06-15T15:10:07.6753307Z       "id": "REQ-ARCH-2",
2026-06-15T15:10:07.6753635Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-15T15:10:07.6753983Z       "requiredStages": [
2026-06-15T15:10:07.6754222Z         "impl"
2026-06-15T15:10:07.6754421Z       ],
2026-06-15T15:10:07.6754636Z       "stages": {
2026-06-15T15:10:07.6754847Z         "doc": {
2026-06-15T15:10:07.6755070Z           "complete": false,
2026-06-15T15:10:07.6755322Z           "evidence": []
2026-06-15T15:10:07.6755547Z         },
2026-06-15T15:10:07.6755760Z         "impl": {
2026-06-15T15:10:07.6755989Z           "complete": true,
2026-06-15T15:10:07.6756233Z           "evidence": [
2026-06-15T15:10:07.6756452Z             {
2026-06-15T15:10:07.6756714Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-15T15:10:07.6757010Z               "line": 18
2026-06-15T15:10:07.6757233Z             }
2026-06-15T15:10:07.6757435Z           ]
2026-06-15T15:10:07.6757624Z         },
2026-06-15T15:10:07.6757823Z         "int": {
2026-06-15T15:10:07.6758036Z           "complete": false,
2026-06-15T15:10:07.6758274Z           "evidence": []
2026-06-15T15:10:07.6758509Z         },
2026-06-15T15:10:07.6758710Z         "unit": {
2026-06-15T15:10:07.6758928Z           "complete": false,
2026-06-15T15:10:07.6759257Z           "evidence": []
2026-06-15T15:10:07.6759477Z         }
2026-06-15T15:10:07.6759673Z       }
2026-06-15T15:10:07.6759867Z     },
2026-06-15T15:10:07.6760058Z     {
2026-06-15T15:10:07.6760269Z       "id": "REQ-ARCH-3",
2026-06-15T15:10:07.6760644Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-15T15:10:07.6761028Z       "requiredStages": [
2026-06-15T15:10:07.6761262Z         "impl",
2026-06-15T15:10:07.6761485Z         "unit"
2026-06-15T15:10:07.6761691Z       ],
2026-06-15T15:10:07.6761887Z       "stages": {
2026-06-15T15:10:07.6762095Z         "doc": {
2026-06-15T15:10:07.6762315Z           "complete": false,
2026-06-15T15:10:07.6762582Z           "evidence": []
2026-06-15T15:10:07.6762807Z         },
2026-06-15T15:10:07.6763015Z         "impl": {
2026-06-15T15:10:07.6763242Z           "complete": true,
2026-06-15T15:10:07.6763632Z           "evidence": [
2026-06-15T15:10:07.6763847Z             {
2026-06-15T15:10:07.6764110Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T15:10:07.6764400Z               "line": 34
2026-06-15T15:10:07.6764619Z             },
2026-06-15T15:10:07.6764834Z             {
2026-06-15T15:10:07.6765088Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T15:10:07.6765379Z               "line": 41
2026-06-15T15:10:07.6765602Z             }
2026-06-15T15:10:07.6765797Z           ]
2026-06-15T15:10:07.6766001Z         },
2026-06-15T15:10:07.6766202Z         "int": {
2026-06-15T15:10:07.6766426Z           "complete": false,
2026-06-15T15:10:07.6766783Z           "evidence": []
2026-06-15T15:10:07.6767013Z         },
2026-06-15T15:10:07.6767207Z         "unit": {
2026-06-15T15:10:07.6767432Z           "complete": true,
2026-06-15T15:10:07.6767666Z           "evidence": [
2026-06-15T15:10:07.6767890Z             {
2026-06-15T15:10:07.6768127Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T15:10:07.6768420Z               "line": 51
2026-06-15T15:10:07.6768640Z             },
2026-06-15T15:10:07.6768844Z             {
2026-06-15T15:10:07.6769163Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T15:10:07.6769449Z               "line": 71
2026-06-15T15:10:07.6769660Z             },
2026-06-15T15:10:07.6769861Z             {
2026-06-15T15:10:07.6770098Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T15:10:07.6770385Z               "line": 83
2026-06-15T15:10:07.6770595Z             }
2026-06-15T15:10:07.6770791Z           ]
2026-06-15T15:10:07.6770994Z         }
2026-06-15T15:10:07.6771189Z       }
2026-06-15T15:10:07.6771382Z     },
2026-06-15T15:10:07.6771574Z     {
2026-06-15T15:10:07.6771783Z       "id": "REQ-ARCH-4",
2026-06-15T15:10:07.6772118Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-15T15:10:07.6772480Z       "requiredStages": [
2026-06-15T15:10:07.6772718Z         "impl",
2026-06-15T15:10:07.6772927Z         "unit"
2026-06-15T15:10:07.6773129Z       ],
2026-06-15T15:10:07.6773323Z       "stages": {
2026-06-15T15:10:07.6773537Z         "doc": {
2026-06-15T15:10:07.6773761Z           "complete": false,
2026-06-15T15:10:07.6774002Z           "evidence": []
2026-06-15T15:10:07.6774230Z         },
2026-06-15T15:10:07.6774431Z         "impl": {
2026-06-15T15:10:07.6774650Z           "complete": true,
2026-06-15T15:10:07.6774888Z           "evidence": [
2026-06-15T15:10:07.6775103Z             {
2026-06-15T15:10:07.6775348Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6775629Z               "line": 157
2026-06-15T15:10:07.6775862Z             },
2026-06-15T15:10:07.6776066Z             {
2026-06-15T15:10:07.6776306Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6776585Z               "line": 180
2026-06-15T15:10:07.6776809Z             },
2026-06-15T15:10:07.6777005Z             {
2026-06-15T15:10:07.6777249Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6777520Z               "line": 200
2026-06-15T15:10:07.6777739Z             },
2026-06-15T15:10:07.6777935Z             {
2026-06-15T15:10:07.6778179Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6778454Z               "line": 215
2026-06-15T15:10:07.6778669Z             },
2026-06-15T15:10:07.6778863Z             {
2026-06-15T15:10:07.6779180Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6779452Z               "line": 265
2026-06-15T15:10:07.6779671Z             }
2026-06-15T15:10:07.6779868Z           ]
2026-06-15T15:10:07.6780082Z         },
2026-06-15T15:10:07.6780287Z         "int": {
2026-06-15T15:10:07.6780516Z           "complete": false,
2026-06-15T15:10:07.6780760Z           "evidence": []
2026-06-15T15:10:07.6780977Z         },
2026-06-15T15:10:07.6781169Z         "unit": {
2026-06-15T15:10:07.6781394Z           "complete": true,
2026-06-15T15:10:07.6781735Z           "evidence": [
2026-06-15T15:10:07.6781957Z             {
2026-06-15T15:10:07.6782205Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6782487Z               "line": 326
2026-06-15T15:10:07.6782702Z             },
2026-06-15T15:10:07.6782915Z             {
2026-06-15T15:10:07.6783159Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6783439Z               "line": 336
2026-06-15T15:10:07.6783655Z             },
2026-06-15T15:10:07.6783850Z             {
2026-06-15T15:10:07.6784088Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6784368Z               "line": 347
2026-06-15T15:10:07.6784692Z             },
2026-06-15T15:10:07.6784901Z             {
2026-06-15T15:10:07.6785138Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6785419Z               "line": 358
2026-06-15T15:10:07.6785639Z             },
2026-06-15T15:10:07.6785835Z             {
2026-06-15T15:10:07.6786078Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6786369Z               "line": 370
2026-06-15T15:10:07.6786589Z             },
2026-06-15T15:10:07.6786790Z             {
2026-06-15T15:10:07.6787017Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6787293Z               "line": 383
2026-06-15T15:10:07.6787513Z             },
2026-06-15T15:10:07.6787717Z             {
2026-06-15T15:10:07.6787951Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6788237Z               "line": 394
2026-06-15T15:10:07.6788462Z             },
2026-06-15T15:10:07.6788662Z             {
2026-06-15T15:10:07.6788904Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6789252Z               "line": 411
2026-06-15T15:10:07.6789461Z             },
2026-06-15T15:10:07.6789674Z             {
2026-06-15T15:10:07.6789912Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.6790203Z               "line": 539
2026-06-15T15:10:07.6790428Z             }
2026-06-15T15:10:07.6790632Z           ]
2026-06-15T15:10:07.6790823Z         }
2026-06-15T15:10:07.6791019Z       }
2026-06-15T15:10:07.6791214Z     },
2026-06-15T15:10:07.6791409Z     {
2026-06-15T15:10:07.6791611Z       "id": "REQ-CLI-1",
2026-06-15T15:10:07.6792957Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-15T15:10:07.6794211Z       "requiredStages": [
2026-06-15T15:10:07.6794458Z         "impl",
2026-06-15T15:10:07.6794676Z         "unit"
2026-06-15T15:10:07.6794876Z       ],
2026-06-15T15:10:07.6795084Z       "stages": {
2026-06-15T15:10:07.6795294Z         "doc": {
2026-06-15T15:10:07.6795524Z           "complete": false,
2026-06-15T15:10:07.6795766Z           "evidence": []
2026-06-15T15:10:07.6795989Z         },
2026-06-15T15:10:07.6796195Z         "impl": {
2026-06-15T15:10:07.6796420Z           "complete": true,
2026-06-15T15:10:07.6796657Z           "evidence": [
2026-06-15T15:10:07.6796881Z             {
2026-06-15T15:10:07.6797140Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6797426Z               "line": 225
2026-06-15T15:10:07.6797662Z             },
2026-06-15T15:10:07.6797867Z             {
2026-06-15T15:10:07.6798102Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6798384Z               "line": 990
2026-06-15T15:10:07.6798606Z             },
2026-06-15T15:10:07.6798817Z             {
2026-06-15T15:10:07.6799117Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6799394Z               "line": 1518
2026-06-15T15:10:07.6799618Z             },
2026-06-15T15:10:07.6799827Z             {
2026-06-15T15:10:07.6800058Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6800472Z               "line": 2725
2026-06-15T15:10:07.6800687Z             }
2026-06-15T15:10:07.6800887Z           ]
2026-06-15T15:10:07.6801082Z         },
2026-06-15T15:10:07.6801283Z         "int": {
2026-06-15T15:10:07.6801502Z           "complete": false,
2026-06-15T15:10:07.6801755Z           "evidence": []
2026-06-15T15:10:07.6801974Z         },
2026-06-15T15:10:07.6802176Z         "unit": {
2026-06-15T15:10:07.6802404Z           "complete": true,
2026-06-15T15:10:07.6802646Z           "evidence": [
2026-06-15T15:10:07.6802860Z             {
2026-06-15T15:10:07.6803091Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6803469Z               "line": 6514
2026-06-15T15:10:07.6803696Z             }
2026-06-15T15:10:07.6803903Z           ]
2026-06-15T15:10:07.6804093Z         }
2026-06-15T15:10:07.6804284Z       }
2026-06-15T15:10:07.6804484Z     },
2026-06-15T15:10:07.6804674Z     {
2026-06-15T15:10:07.6804879Z       "id": "REQ-CLI-2",
2026-06-15T15:10:07.6805774Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-15T15:10:07.6806651Z       "requiredStages": [
2026-06-15T15:10:07.6806883Z         "impl",
2026-06-15T15:10:07.6807094Z         "unit"
2026-06-15T15:10:07.6807300Z       ],
2026-06-15T15:10:07.6807490Z       "stages": {
2026-06-15T15:10:07.6807705Z         "doc": {
2026-06-15T15:10:07.6807920Z           "complete": false,
2026-06-15T15:10:07.6808156Z           "evidence": []
2026-06-15T15:10:07.6808377Z         },
2026-06-15T15:10:07.6808576Z         "impl": {
2026-06-15T15:10:07.6808794Z           "complete": true,
2026-06-15T15:10:07.6809287Z           "evidence": [
2026-06-15T15:10:07.6809505Z             {
2026-06-15T15:10:07.6809753Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.6810044Z               "line": 345
2026-06-15T15:10:07.6810269Z             },
2026-06-15T15:10:07.6810467Z             {
2026-06-15T15:10:07.6810732Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T15:10:07.6811023Z               "line": 78
2026-06-15T15:10:07.6811247Z             },
2026-06-15T15:10:07.6811452Z             {
2026-06-15T15:10:07.6811700Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T15:10:07.6811986Z               "line": 239
2026-06-15T15:10:07.6812215Z             },
2026-06-15T15:10:07.6812421Z             {
2026-06-15T15:10:07.6812658Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6812935Z               "line": 419
2026-06-15T15:10:07.6813155Z             },
2026-06-15T15:10:07.6813363Z             {
2026-06-15T15:10:07.6813604Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6813895Z               "line": 1073
2026-06-15T15:10:07.6825103Z             },
2026-06-15T15:10:07.6825380Z             {
2026-06-15T15:10:07.6825642Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6825920Z               "line": 1713
2026-06-15T15:10:07.6826154Z             },
2026-06-15T15:10:07.6826366Z             {
2026-06-15T15:10:07.6826599Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6826894Z               "line": 1792
2026-06-15T15:10:07.6827126Z             },
2026-06-15T15:10:07.6827336Z             {
2026-06-15T15:10:07.6827571Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6827842Z               "line": 1853
2026-06-15T15:10:07.6828066Z             }
2026-06-15T15:10:07.6828276Z           ]
2026-06-15T15:10:07.6828463Z         },
2026-06-15T15:10:07.6828676Z         "int": {
2026-06-15T15:10:07.6828910Z           "complete": false,
2026-06-15T15:10:07.6829229Z           "evidence": []
2026-06-15T15:10:07.6829444Z         },
2026-06-15T15:10:07.6829648Z         "unit": {
2026-06-15T15:10:07.6829872Z           "complete": true,
2026-06-15T15:10:07.6830258Z           "evidence": [
2026-06-15T15:10:07.6830482Z             {
2026-06-15T15:10:07.6830741Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T15:10:07.6831041Z               "line": 309
2026-06-15T15:10:07.6831260Z             },
2026-06-15T15:10:07.6831460Z             {
2026-06-15T15:10:07.6831688Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6831953Z               "line": 6652
2026-06-15T15:10:07.6832186Z             }
2026-06-15T15:10:07.6832377Z           ]
2026-06-15T15:10:07.6832563Z         }
2026-06-15T15:10:07.6832758Z       }
2026-06-15T15:10:07.6832955Z     },
2026-06-15T15:10:07.6833144Z     {
2026-06-15T15:10:07.6833464Z       "id": "REQ-CLI-3",
2026-06-15T15:10:07.6834383Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-15T15:10:07.6835288Z       "requiredStages": [
2026-06-15T15:10:07.6835522Z         "impl",
2026-06-15T15:10:07.6835721Z         "unit"
2026-06-15T15:10:07.6835936Z       ],
2026-06-15T15:10:07.6836127Z       "stages": {
2026-06-15T15:10:07.6836336Z         "doc": {
2026-06-15T15:10:07.6836564Z           "complete": false,
2026-06-15T15:10:07.6836809Z           "evidence": []
2026-06-15T15:10:07.6837031Z         },
2026-06-15T15:10:07.6837229Z         "impl": {
2026-06-15T15:10:07.6837439Z           "complete": true,
2026-06-15T15:10:07.6837677Z           "evidence": [
2026-06-15T15:10:07.6837906Z             {
2026-06-15T15:10:07.6838140Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6838407Z               "line": 984
2026-06-15T15:10:07.6838621Z             }
2026-06-15T15:10:07.6838817Z           ]
2026-06-15T15:10:07.6839084Z         },
2026-06-15T15:10:07.6839276Z         "int": {
2026-06-15T15:10:07.6839494Z           "complete": false,
2026-06-15T15:10:07.6839742Z           "evidence": []
2026-06-15T15:10:07.6839970Z         },
2026-06-15T15:10:07.6840156Z         "unit": {
2026-06-15T15:10:07.6840371Z           "complete": true,
2026-06-15T15:10:07.6840605Z           "evidence": [
2026-06-15T15:10:07.6840823Z             {
2026-06-15T15:10:07.6841062Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6841338Z               "line": 6479
2026-06-15T15:10:07.6841564Z             }
2026-06-15T15:10:07.6841772Z           ]
2026-06-15T15:10:07.6841977Z         }
2026-06-15T15:10:07.6842167Z       }
2026-06-15T15:10:07.6842356Z     },
2026-06-15T15:10:07.6842551Z     {
2026-06-15T15:10:07.6842770Z       "id": "REQ-CONSENT-1",
2026-06-15T15:10:07.6843872Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-15T15:10:07.6844929Z       "requiredStages": [
2026-06-15T15:10:07.6845171Z         "impl",
2026-06-15T15:10:07.6845385Z         "unit"
2026-06-15T15:10:07.6845580Z       ],
2026-06-15T15:10:07.6845781Z       "stages": {
2026-06-15T15:10:07.6845995Z         "doc": {
2026-06-15T15:10:07.6846219Z           "complete": false,
2026-06-15T15:10:07.6846457Z           "evidence": []
2026-06-15T15:10:07.6846683Z         },
2026-06-15T15:10:07.6846896Z         "impl": {
2026-06-15T15:10:07.6847120Z           "complete": true,
2026-06-15T15:10:07.6847346Z           "evidence": [
2026-06-15T15:10:07.6847567Z             {
2026-06-15T15:10:07.6847818Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6848104Z               "line": 27
2026-06-15T15:10:07.6848319Z             },
2026-06-15T15:10:07.6848532Z             {
2026-06-15T15:10:07.6848785Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6849225Z               "line": 75
2026-06-15T15:10:07.6849564Z             },
2026-06-15T15:10:07.6849773Z             {
2026-06-15T15:10:07.6850011Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6850292Z               "line": 98
2026-06-15T15:10:07.6850506Z             },
2026-06-15T15:10:07.6850706Z             {
2026-06-15T15:10:07.6850946Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T15:10:07.6851236Z               "line": 82
2026-06-15T15:10:07.6851450Z             },
2026-06-15T15:10:07.6851650Z             {
2026-06-15T15:10:07.6851894Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T15:10:07.6852180Z               "line": 109
2026-06-15T15:10:07.6852509Z             },
2026-06-15T15:10:07.6852717Z             {
2026-06-15T15:10:07.6852953Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T15:10:07.6853250Z               "line": 127
2026-06-15T15:10:07.6853460Z             },
2026-06-15T15:10:07.6853654Z             {
2026-06-15T15:10:07.6853902Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T15:10:07.6854175Z               "line": 142
2026-06-15T15:10:07.6854394Z             },
2026-06-15T15:10:07.6854598Z             {
2026-06-15T15:10:07.6854837Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6855113Z               "line": 6066
2026-06-15T15:10:07.6855339Z             }
2026-06-15T15:10:07.6855541Z           ]
2026-06-15T15:10:07.6855736Z         },
2026-06-15T15:10:07.6855935Z         "int": {
2026-06-15T15:10:07.6856154Z           "complete": false,
2026-06-15T15:10:07.6856394Z           "evidence": []
2026-06-15T15:10:07.6856608Z         },
2026-06-15T15:10:07.6856812Z         "unit": {
2026-06-15T15:10:07.6857041Z           "complete": true,
2026-06-15T15:10:07.6857276Z           "evidence": [
2026-06-15T15:10:07.6857495Z             {
2026-06-15T15:10:07.6857747Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6858037Z               "line": 334
2026-06-15T15:10:07.6858256Z             },
2026-06-15T15:10:07.6858463Z             {
2026-06-15T15:10:07.6858702Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6859074Z               "line": 380
2026-06-15T15:10:07.6859289Z             },
2026-06-15T15:10:07.6859495Z             {
2026-06-15T15:10:07.6859741Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6860018Z               "line": 391
2026-06-15T15:10:07.6860242Z             },
2026-06-15T15:10:07.6860439Z             {
2026-06-15T15:10:07.6860691Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T15:10:07.6860966Z               "line": 165
2026-06-15T15:10:07.6861196Z             },
2026-06-15T15:10:07.6861395Z             {
2026-06-15T15:10:07.6861638Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T15:10:07.6861924Z               "line": 184
2026-06-15T15:10:07.6862144Z             },
2026-06-15T15:10:07.6862350Z             {
2026-06-15T15:10:07.6862587Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T15:10:07.6862873Z               "line": 204
2026-06-15T15:10:07.6863097Z             },
2026-06-15T15:10:07.6863296Z             {
2026-06-15T15:10:07.6863523Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6863795Z               "line": 6832
2026-06-15T15:10:07.6864025Z             }
2026-06-15T15:10:07.6864234Z           ]
2026-06-15T15:10:07.6864420Z         }
2026-06-15T15:10:07.6864630Z       }
2026-06-15T15:10:07.6864811Z     },
2026-06-15T15:10:07.6865001Z     {
2026-06-15T15:10:07.6865217Z       "id": "REQ-CONSENT-2",
2026-06-15T15:10:07.6866263Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-15T15:10:07.6867263Z       "requiredStages": [
2026-06-15T15:10:07.6867611Z         "impl",
2026-06-15T15:10:07.6867822Z         "unit"
2026-06-15T15:10:07.6868031Z       ],
2026-06-15T15:10:07.6868222Z       "stages": {
2026-06-15T15:10:07.6868433Z         "doc": {
2026-06-15T15:10:07.6868654Z           "complete": false,
2026-06-15T15:10:07.6868896Z           "evidence": []
2026-06-15T15:10:07.6869206Z         },
2026-06-15T15:10:07.6869401Z         "impl": {
2026-06-15T15:10:07.6869624Z           "complete": true,
2026-06-15T15:10:07.6869878Z           "evidence": [
2026-06-15T15:10:07.6870102Z             {
2026-06-15T15:10:07.6870350Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6870636Z               "line": 140
2026-06-15T15:10:07.6870985Z             },
2026-06-15T15:10:07.6871189Z             {
2026-06-15T15:10:07.6871427Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6871708Z               "line": 165
2026-06-15T15:10:07.6871927Z             },
2026-06-15T15:10:07.6872136Z             {
2026-06-15T15:10:07.6872375Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6872652Z               "line": 199
2026-06-15T15:10:07.6872866Z             },
2026-06-15T15:10:07.6873062Z             {
2026-06-15T15:10:07.6873310Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6873593Z               "line": 241
2026-06-15T15:10:07.6873823Z             },
2026-06-15T15:10:07.6874017Z             {
2026-06-15T15:10:07.6874261Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6874537Z               "line": 269
2026-06-15T15:10:07.6874755Z             },
2026-06-15T15:10:07.6874947Z             {
2026-06-15T15:10:07.6875200Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6875482Z               "line": 300
2026-06-15T15:10:07.6875705Z             },
2026-06-15T15:10:07.6875905Z             {
2026-06-15T15:10:07.6876136Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6876416Z               "line": 5857
2026-06-15T15:10:07.6876652Z             },
2026-06-15T15:10:07.6876842Z             {
2026-06-15T15:10:07.6877070Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6877346Z               "line": 5915
2026-06-15T15:10:07.6877570Z             }
2026-06-15T15:10:07.6877771Z           ]
2026-06-15T15:10:07.6877961Z         },
2026-06-15T15:10:07.6878157Z         "int": {
2026-06-15T15:10:07.6878373Z           "complete": false,
2026-06-15T15:10:07.6878610Z           "evidence": []
2026-06-15T15:10:07.6878838Z         },
2026-06-15T15:10:07.6879101Z         "unit": {
2026-06-15T15:10:07.6879325Z           "complete": true,
2026-06-15T15:10:07.6879589Z           "evidence": [
2026-06-15T15:10:07.6879809Z             {
2026-06-15T15:10:07.6880052Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6880328Z               "line": 419
2026-06-15T15:10:07.6880547Z             },
2026-06-15T15:10:07.6880738Z             {
2026-06-15T15:10:07.6880982Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6881268Z               "line": 436
2026-06-15T15:10:07.6881492Z             },
2026-06-15T15:10:07.6881687Z             {
2026-06-15T15:10:07.6881931Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6882206Z               "line": 472
2026-06-15T15:10:07.6882425Z             },
2026-06-15T15:10:07.6882626Z             {
2026-06-15T15:10:07.6882869Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.6883150Z               "line": 516
2026-06-15T15:10:07.6883364Z             },
2026-06-15T15:10:07.6883560Z             {
2026-06-15T15:10:07.6883799Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6884075Z               "line": 8028
2026-06-15T15:10:07.6884303Z             },
2026-06-15T15:10:07.6884508Z             {
2026-06-15T15:10:07.6884725Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6885001Z               "line": 8110
2026-06-15T15:10:07.6885334Z             }
2026-06-15T15:10:07.6885540Z           ]
2026-06-15T15:10:07.6885746Z         }
2026-06-15T15:10:07.6885935Z       }
2026-06-15T15:10:07.6886126Z     },
2026-06-15T15:10:07.6886328Z     {
2026-06-15T15:10:07.6886537Z       "id": "REQ-CONSENT-3",
2026-06-15T15:10:07.6888732Z       "title": "Per-capability approval gates (class-keyed): the require_approval enum may ride INDIVIDUAL [shell.capabilities] entries — gating the dangerous ACT, not just the spawn — with an optional class_key scoping the grant qualifier finer than the capability id ((owner endpoint x device class x node); a remembered HID-class attach grant never authorizes a storage-class attach). Reuses the grant store + interactive escalation + tighten-only floor (REQ-CONSENT-1/2 plumbing). Spawn gates govern EXISTENCE; capability gates govern ACTS — an explicitly distinct invariant (CONTEXT:283, ratified 2026-06-11 Gateway grill).",
2026-06-15T15:10:07.6890678Z       "requiredStages": [
2026-06-15T15:10:07.6890912Z         "doc",
2026-06-15T15:10:07.6891137Z         "impl",
2026-06-15T15:10:07.6891341Z         "unit",
2026-06-15T15:10:07.6891546Z         "int"
2026-06-15T15:10:07.6891737Z       ],
2026-06-15T15:10:07.6891932Z       "stages": {
2026-06-15T15:10:07.6892143Z         "doc": {
2026-06-15T15:10:07.6892377Z           "complete": true,
2026-06-15T15:10:07.6892627Z           "evidence": [
2026-06-15T15:10:07.6892848Z             {
2026-06-15T15:10:07.6893072Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.6893328Z               "line": 284
2026-06-15T15:10:07.6893544Z             }
2026-06-15T15:10:07.6893758Z           ]
2026-06-15T15:10:07.6893962Z         },
2026-06-15T15:10:07.6894167Z         "impl": {
2026-06-15T15:10:07.6894398Z           "complete": true,
2026-06-15T15:10:07.6894640Z           "evidence": [
2026-06-15T15:10:07.6894863Z             {
2026-06-15T15:10:07.6895119Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.6895405Z               "line": 123
2026-06-15T15:10:07.6895624Z             },
2026-06-15T15:10:07.6895837Z             {
2026-06-15T15:10:07.6896082Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.6896363Z               "line": 162
2026-06-15T15:10:07.6896583Z             },
2026-06-15T15:10:07.6896786Z             {
2026-06-15T15:10:07.6897034Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.6897317Z               "line": 239
2026-06-15T15:10:07.6897527Z             },
2026-06-15T15:10:07.6897740Z             {
2026-06-15T15:10:07.6897991Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.6898291Z               "line": 491
2026-06-15T15:10:07.6898520Z             },
2026-06-15T15:10:07.6898724Z             {
2026-06-15T15:10:07.6899038Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.6899329Z               "line": 699
2026-06-15T15:10:07.6899554Z             },
2026-06-15T15:10:07.6899750Z             {
2026-06-15T15:10:07.6899973Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6900249Z               "line": 5983
2026-06-15T15:10:07.6900469Z             }
2026-06-15T15:10:07.6900670Z           ]
2026-06-15T15:10:07.6900867Z         },
2026-06-15T15:10:07.6901072Z         "int": {
2026-06-15T15:10:07.6901286Z           "complete": true,
2026-06-15T15:10:07.6901520Z           "evidence": [
2026-06-15T15:10:07.6901731Z             {
2026-06-15T15:10:07.6901992Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-15T15:10:07.6902302Z               "line": 16
2026-06-15T15:10:07.6902516Z             }
2026-06-15T15:10:07.6902713Z           ]
2026-06-15T15:10:07.6902903Z         },
2026-06-15T15:10:07.6903098Z         "unit": {
2026-06-15T15:10:07.6903312Z           "complete": true,
2026-06-15T15:10:07.6903554Z           "evidence": [
2026-06-15T15:10:07.6903775Z             {
2026-06-15T15:10:07.6904032Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.6904337Z               "line": 624
2026-06-15T15:10:07.6904667Z             },
2026-06-15T15:10:07.6904871Z             {
2026-06-15T15:10:07.6905124Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.6905404Z               "line": 671
2026-06-15T15:10:07.6905618Z             },
2026-06-15T15:10:07.6905825Z             {
2026-06-15T15:10:07.6906069Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.6906374Z               "line": 1016
2026-06-15T15:10:07.6906599Z             }
2026-06-15T15:10:07.6906789Z           ]
2026-06-15T15:10:07.6906994Z         }
2026-06-15T15:10:07.6907195Z       }
2026-06-15T15:10:07.6907385Z     },
2026-06-15T15:10:07.6907695Z     {
2026-06-15T15:10:07.6907914Z       "id": "REQ-CONV-1",
2026-06-15T15:10:07.6909552Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-15T15:10:07.6910909Z       "requiredStages": [
2026-06-15T15:10:07.6911140Z         "impl",
2026-06-15T15:10:07.6911351Z         "unit"
2026-06-15T15:10:07.6911555Z       ],
2026-06-15T15:10:07.6911752Z       "stages": {
2026-06-15T15:10:07.6911957Z         "doc": {
2026-06-15T15:10:07.6964533Z           "complete": false,
2026-06-15T15:10:07.6964900Z           "evidence": []
2026-06-15T15:10:07.6965148Z         },
2026-06-15T15:10:07.6965407Z         "impl": {
2026-06-15T15:10:07.6965648Z           "complete": true,
2026-06-15T15:10:07.6965892Z           "evidence": [
2026-06-15T15:10:07.6966121Z             {
2026-06-15T15:10:07.6966379Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.6966683Z               "line": 787
2026-06-15T15:10:07.6966910Z             },
2026-06-15T15:10:07.6967117Z             {
2026-06-15T15:10:07.6967370Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.6967655Z               "line": 94
2026-06-15T15:10:07.6967879Z             },
2026-06-15T15:10:07.6968079Z             {
2026-06-15T15:10:07.6968333Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.6968629Z               "line": 345
2026-06-15T15:10:07.6968864Z             },
2026-06-15T15:10:07.6969139Z             {
2026-06-15T15:10:07.6969397Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.6969697Z               "line": 387
2026-06-15T15:10:07.6969932Z             },
2026-06-15T15:10:07.6970140Z             {
2026-06-15T15:10:07.6970384Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.6970675Z               "line": 472
2026-06-15T15:10:07.6970900Z             },
2026-06-15T15:10:07.6971099Z             {
2026-06-15T15:10:07.6971342Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.6971632Z               "line": 667
2026-06-15T15:10:07.6971851Z             },
2026-06-15T15:10:07.6972049Z             {
2026-06-15T15:10:07.6972292Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.6972570Z               "line": 693
2026-06-15T15:10:07.6972789Z             },
2026-06-15T15:10:07.6972988Z             {
2026-06-15T15:10:07.6973241Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.6973532Z               "line": 369
2026-06-15T15:10:07.6973748Z             },
2026-06-15T15:10:07.6973947Z             {
2026-06-15T15:10:07.6974199Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T15:10:07.6974487Z               "line": 19
2026-06-15T15:10:07.6974707Z             }
2026-06-15T15:10:07.6974911Z           ]
2026-06-15T15:10:07.6975108Z         },
2026-06-15T15:10:07.6975308Z         "int": {
2026-06-15T15:10:07.6975522Z           "complete": false,
2026-06-15T15:10:07.6976056Z           "evidence": []
2026-06-15T15:10:07.6976281Z         },
2026-06-15T15:10:07.6976485Z         "unit": {
2026-06-15T15:10:07.6976704Z           "complete": true,
2026-06-15T15:10:07.6976944Z           "evidence": [
2026-06-15T15:10:07.6977156Z             {
2026-06-15T15:10:07.6977400Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.6977682Z               "line": 1263
2026-06-15T15:10:07.6977910Z             },
2026-06-15T15:10:07.6978119Z             {
2026-06-15T15:10:07.6978354Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T15:10:07.6978630Z               "line": 108
2026-06-15T15:10:07.6979194Z             },
2026-06-15T15:10:07.6979401Z             {
2026-06-15T15:10:07.6979647Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T15:10:07.6979920Z               "line": 134
2026-06-15T15:10:07.6980133Z             },
2026-06-15T15:10:07.6980333Z             {
2026-06-15T15:10:07.6980572Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T15:10:07.6980863Z               "line": 144
2026-06-15T15:10:07.6981078Z             }
2026-06-15T15:10:07.6981282Z           ]
2026-06-15T15:10:07.6981478Z         }
2026-06-15T15:10:07.6981669Z       }
2026-06-15T15:10:07.6981863Z     },
2026-06-15T15:10:07.6982061Z     {
2026-06-15T15:10:07.6982259Z       "id": "REQ-CONV-2",
2026-06-15T15:10:07.6983698Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-15T15:10:07.6984830Z       "requiredStages": [
2026-06-15T15:10:07.6985066Z         "impl",
2026-06-15T15:10:07.6985282Z         "unit"
2026-06-15T15:10:07.6985490Z       ],
2026-06-15T15:10:07.6985692Z       "stages": {
2026-06-15T15:10:07.6985916Z         "doc": {
2026-06-15T15:10:07.6986134Z           "complete": false,
2026-06-15T15:10:07.6986373Z           "evidence": []
2026-06-15T15:10:07.6986597Z         },
2026-06-15T15:10:07.6986803Z         "impl": {
2026-06-15T15:10:07.6987026Z           "complete": true,
2026-06-15T15:10:07.6987269Z           "evidence": [
2026-06-15T15:10:07.6987495Z             {
2026-06-15T15:10:07.6987750Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.6988055Z               "line": 359
2026-06-15T15:10:07.6988284Z             },
2026-06-15T15:10:07.6988480Z             {
2026-06-15T15:10:07.6988747Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T15:10:07.6989115Z               "line": 119
2026-06-15T15:10:07.6989338Z             },
2026-06-15T15:10:07.6989543Z             {
2026-06-15T15:10:07.6989796Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.6990095Z               "line": 789
2026-06-15T15:10:07.6990321Z             },
2026-06-15T15:10:07.6990522Z             {
2026-06-15T15:10:07.6990784Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.6991085Z               "line": 800
2026-06-15T15:10:07.6991300Z             },
2026-06-15T15:10:07.6991495Z             {
2026-06-15T15:10:07.6991733Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.6992024Z               "line": 334
2026-06-15T15:10:07.6992249Z             },
2026-06-15T15:10:07.6992448Z             {
2026-06-15T15:10:07.6992687Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6992962Z               "line": 2678
2026-06-15T15:10:07.6993198Z             },
2026-06-15T15:10:07.6993408Z             {
2026-06-15T15:10:07.6993633Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6993919Z               "line": 2694
2026-06-15T15:10:07.6994142Z             },
2026-06-15T15:10:07.6994338Z             {
2026-06-15T15:10:07.6994572Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.6994962Z               "line": 2753
2026-06-15T15:10:07.6995183Z             }
2026-06-15T15:10:07.6995381Z           ]
2026-06-15T15:10:07.6995618Z         },
2026-06-15T15:10:07.6995827Z         "int": {
2026-06-15T15:10:07.6996051Z           "complete": false,
2026-06-15T15:10:07.6996298Z           "evidence": []
2026-06-15T15:10:07.6996518Z         },
2026-06-15T15:10:07.6996724Z         "unit": {
2026-06-15T15:10:07.6996947Z           "complete": true,
2026-06-15T15:10:07.6997176Z           "evidence": [
2026-06-15T15:10:07.6997392Z             {
2026-06-15T15:10:07.6997639Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.6998045Z               "line": 889
2026-06-15T15:10:07.6998262Z             },
2026-06-15T15:10:07.6998468Z             {
2026-06-15T15:10:07.6998707Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.6999088Z               "line": 1014
2026-06-15T15:10:07.6999307Z             },
2026-06-15T15:10:07.6999506Z             {
2026-06-15T15:10:07.6999764Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T15:10:07.7000069Z               "line": 215
2026-06-15T15:10:07.7000286Z             }
2026-06-15T15:10:07.7000483Z           ]
2026-06-15T15:10:07.7000678Z         }
2026-06-15T15:10:07.7000882Z       }
2026-06-15T15:10:07.7001077Z     },
2026-06-15T15:10:07.7001268Z     {
2026-06-15T15:10:07.7001472Z       "id": "REQ-DAEMON-1",
2026-06-15T15:10:07.7001796Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-15T15:10:07.7002140Z       "requiredStages": [
2026-06-15T15:10:07.7002369Z         "impl",
2026-06-15T15:10:07.7002580Z         "unit",
2026-06-15T15:10:07.7002775Z         "int"
2026-06-15T15:10:07.7002965Z       ],
2026-06-15T15:10:07.7003075Z       "stages": {
2026-06-15T15:10:07.7003177Z         "doc": {
2026-06-15T15:10:07.7003280Z           "complete": false,
2026-06-15T15:10:07.7003398Z           "evidence": []
2026-06-15T15:10:07.7003499Z         },
2026-06-15T15:10:07.7003606Z         "impl": {
2026-06-15T15:10:07.7003724Z           "complete": true,
2026-06-15T15:10:07.7003830Z           "evidence": [
2026-06-15T15:10:07.7003940Z             {
2026-06-15T15:10:07.7004087Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7004207Z               "line": 229
2026-06-15T15:10:07.7004311Z             },
2026-06-15T15:10:07.7004422Z             {
2026-06-15T15:10:07.7004574Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T15:10:07.7004673Z               "line": 12
2026-06-15T15:10:07.7004779Z             },
2026-06-15T15:10:07.7004879Z             {
2026-06-15T15:10:07.7005041Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7005147Z               "line": 16
2026-06-15T15:10:07.7005251Z             },
2026-06-15T15:10:07.7005366Z             {
2026-06-15T15:10:07.7005504Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7005618Z               "line": 259
2026-06-15T15:10:07.7005720Z             },
2026-06-15T15:10:07.7005828Z             {
2026-06-15T15:10:07.7005979Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-15T15:10:07.7006089Z               "line": 24
2026-06-15T15:10:07.7006197Z             },
2026-06-15T15:10:07.7006301Z             {
2026-06-15T15:10:07.7006450Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-15T15:10:07.7006558Z               "line": 136
2026-06-15T15:10:07.7006664Z             },
2026-06-15T15:10:07.7006769Z             {
2026-06-15T15:10:07.7006916Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-15T15:10:07.7007032Z               "line": 190
2026-06-15T15:10:07.7007136Z             },
2026-06-15T15:10:07.7007240Z             {
2026-06-15T15:10:07.7007384Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-15T15:10:07.7007498Z               "line": 222
2026-06-15T15:10:07.7007608Z             },
2026-06-15T15:10:07.7007827Z             {
2026-06-15T15:10:07.7007981Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T15:10:07.7008089Z               "line": 15
2026-06-15T15:10:07.7008194Z             },
2026-06-15T15:10:07.7008296Z             {
2026-06-15T15:10:07.7008437Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T15:10:07.7008558Z               "line": 13
2026-06-15T15:10:07.7008667Z             },
2026-06-15T15:10:07.7008770Z             {
2026-06-15T15:10:07.7008918Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.7009118Z               "line": 281
2026-06-15T15:10:07.7009219Z             },
2026-06-15T15:10:07.7009319Z             {
2026-06-15T15:10:07.7009652Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.7009958Z               "line": 369
2026-06-15T15:10:07.7010090Z             }
2026-06-15T15:10:07.7010259Z           ]
2026-06-15T15:10:07.7010415Z         },
2026-06-15T15:10:07.7010540Z         "int": {
2026-06-15T15:10:07.7010802Z           "complete": true,
2026-06-15T15:10:07.7010940Z           "evidence": [
2026-06-15T15:10:07.7011115Z             {
2026-06-15T15:10:07.7011337Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T15:10:07.7011495Z               "line": 32
2026-06-15T15:10:07.7011732Z             },
2026-06-15T15:10:07.7011857Z             {
2026-06-15T15:10:07.7012086Z               "path": "crates/spt/tests/live_bind_firsthost_e2e.rs",
2026-06-15T15:10:07.7012224Z               "line": 12
2026-06-15T15:10:07.7012381Z             },
2026-06-15T15:10:07.7012591Z             {
2026-06-15T15:10:07.7012783Z               "path": "crates/spt/tests/live_firsthost_e2e.rs",
2026-06-15T15:10:07.7012953Z               "line": 12
2026-06-15T15:10:07.7013079Z             }
2026-06-15T15:10:07.7013244Z           ]
2026-06-15T15:10:07.7013403Z         },
2026-06-15T15:10:07.7013597Z         "unit": {
2026-06-15T15:10:07.7013765Z           "complete": true,
2026-06-15T15:10:07.7013911Z           "evidence": [
2026-06-15T15:10:07.7014082Z             {
2026-06-15T15:10:07.7014357Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T15:10:07.7014552Z               "line": 285
2026-06-15T15:10:07.7014687Z             },
2026-06-15T15:10:07.7014928Z             {
2026-06-15T15:10:07.7015125Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T15:10:07.7015306Z               "line": 293
2026-06-15T15:10:07.7015477Z             },
2026-06-15T15:10:07.7015602Z             {
2026-06-15T15:10:07.7015811Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T15:10:07.7015960Z               "line": 309
2026-06-15T15:10:07.7016130Z             },
2026-06-15T15:10:07.7016322Z             {
2026-06-15T15:10:07.7016501Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T15:10:07.7016686Z               "line": 317
2026-06-15T15:10:07.7016818Z             },
2026-06-15T15:10:07.7016996Z             {
2026-06-15T15:10:07.7017214Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7017358Z               "line": 609
2026-06-15T15:10:07.7017529Z             },
2026-06-15T15:10:07.7017653Z             {
2026-06-15T15:10:07.7017887Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7018040Z               "line": 679
2026-06-15T15:10:07.7018320Z             },
2026-06-15T15:10:07.7018483Z             {
2026-06-15T15:10:07.7018663Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-15T15:10:07.7018851Z               "line": 307
2026-06-15T15:10:07.7019084Z             },
2026-06-15T15:10:07.7019269Z             {
2026-06-15T15:10:07.7019483Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-15T15:10:07.7019631Z               "line": 344
2026-06-15T15:10:07.7019837Z             },
2026-06-15T15:10:07.7019979Z             {
2026-06-15T15:10:07.7020199Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-15T15:10:07.7020331Z               "line": 367
2026-06-15T15:10:07.7020599Z             },
2026-06-15T15:10:07.7020791Z             {
2026-06-15T15:10:07.7020999Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-15T15:10:07.7021176Z               "line": 396
2026-06-15T15:10:07.7021309Z             },
2026-06-15T15:10:07.7021472Z             {
2026-06-15T15:10:07.7021709Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-15T15:10:07.7021873Z               "line": 444
2026-06-15T15:10:07.7022035Z             },
2026-06-15T15:10:07.7022165Z             {
2026-06-15T15:10:07.7022369Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T15:10:07.7022494Z               "line": 106
2026-06-15T15:10:07.7022827Z             },
2026-06-15T15:10:07.7022985Z             {
2026-06-15T15:10:07.7023161Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T15:10:07.7023348Z               "line": 132
2026-06-15T15:10:07.7023462Z             }
2026-06-15T15:10:07.7023682Z           ]
2026-06-15T15:10:07.7023804Z         }
2026-06-15T15:10:07.7023982Z       }
2026-06-15T15:10:07.7024157Z     },
2026-06-15T15:10:07.7024268Z     {
2026-06-15T15:10:07.7024495Z       "id": "REQ-DAEMON-2",
2026-06-15T15:10:07.7024684Z       "title": "Broker/brain split for seamless self-update",
2026-06-15T15:10:07.7024864Z       "requiredStages": [
2026-06-15T15:10:07.7025050Z         "impl",
2026-06-15T15:10:07.7025174Z         "unit",
2026-06-15T15:10:07.7025627Z         "int"
2026-06-15T15:10:07.7025751Z       ],
2026-06-15T15:10:07.7025919Z       "stages": {
2026-06-15T15:10:07.7026066Z         "doc": {
2026-06-15T15:10:07.7026220Z           "complete": true,
2026-06-15T15:10:07.7026438Z           "evidence": [
2026-06-15T15:10:07.7026577Z             {
2026-06-15T15:10:07.7026806Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-15T15:10:07.7026948Z               "line": 250
2026-06-15T15:10:07.7027104Z             }
2026-06-15T15:10:07.7027274Z           ]
2026-06-15T15:10:07.7027455Z         },
2026-06-15T15:10:07.7027631Z         "impl": {
2026-06-15T15:10:07.7027774Z           "complete": true,
2026-06-15T15:10:07.7027932Z           "evidence": [
2026-06-15T15:10:07.7028094Z             {
2026-06-15T15:10:07.7028313Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7028504Z               "line": 23
2026-06-15T15:10:07.7028666Z             },
2026-06-15T15:10:07.7028824Z             {
2026-06-15T15:10:07.7029407Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7029678Z               "line": 795
2026-06-15T15:10:07.7029914Z             },
2026-06-15T15:10:07.7030082Z             {
2026-06-15T15:10:07.7030276Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7030515Z               "line": 820
2026-06-15T15:10:07.7030707Z             },
2026-06-15T15:10:07.7030835Z             {
2026-06-15T15:10:07.7031040Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7031183Z               "line": 1026
2026-06-15T15:10:07.7031369Z             },
2026-06-15T15:10:07.7031559Z             {
2026-06-15T15:10:07.7031732Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7031908Z               "line": 32
2026-06-15T15:10:07.7032032Z             },
2026-06-15T15:10:07.7032220Z             {
2026-06-15T15:10:07.7032429Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7032596Z               "line": 549
2026-06-15T15:10:07.7032758Z             },
2026-06-15T15:10:07.7032886Z             {
2026-06-15T15:10:07.7033119Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7033288Z               "line": 1055
2026-06-15T15:10:07.7033453Z             },
2026-06-15T15:10:07.7033626Z             {
2026-06-15T15:10:07.7033797Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7034012Z               "line": 1342
2026-06-15T15:10:07.7034175Z             },
2026-06-15T15:10:07.7034330Z             {
2026-06-15T15:10:07.7034499Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T15:10:07.7034780Z               "line": 11
2026-06-15T15:10:07.7034984Z             },
2026-06-15T15:10:07.7035131Z             {
2026-06-15T15:10:07.7035339Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7035472Z               "line": 146
2026-06-15T15:10:07.7035648Z             },
2026-06-15T15:10:07.7035840Z             {
2026-06-15T15:10:07.7036035Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7036202Z               "line": 274
2026-06-15T15:10:07.7036325Z             },
2026-06-15T15:10:07.7036493Z             {
2026-06-15T15:10:07.7036650Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T15:10:07.7036993Z               "line": 13
2026-06-15T15:10:07.7037160Z             },
2026-06-15T15:10:07.7037299Z             {
2026-06-15T15:10:07.7037503Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.7037626Z               "line": 27
2026-06-15T15:10:07.7037834Z             },
2026-06-15T15:10:07.7037967Z             {
2026-06-15T15:10:07.7038187Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.7038364Z               "line": 130
2026-06-15T15:10:07.7038478Z             },
2026-06-15T15:10:07.7038689Z             {
2026-06-15T15:10:07.7038863Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.7039112Z               "line": 537
2026-06-15T15:10:07.7039274Z             },
2026-06-15T15:10:07.7039393Z             {
2026-06-15T15:10:07.7039652Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.7039789Z               "line": 705
2026-06-15T15:10:07.7040446Z             },
2026-06-15T15:10:07.7040584Z             {
2026-06-15T15:10:07.7040775Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.7041004Z               "line": 849
2026-06-15T15:10:07.7041151Z             },
2026-06-15T15:10:07.7041314Z             {
2026-06-15T15:10:07.7041485Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.7041643Z               "line": 936
2026-06-15T15:10:07.7041853Z             },
2026-06-15T15:10:07.7042000Z             {
2026-06-15T15:10:07.7042202Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.7042334Z               "line": 982
2026-06-15T15:10:07.7042482Z             },
2026-06-15T15:10:07.7042649Z             {
2026-06-15T15:10:07.7042886Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T15:10:07.7043060Z               "line": 10
2026-06-15T15:10:07.7043189Z             }
2026-06-15T15:10:07.7043337Z           ]
2026-06-15T15:10:07.7043504Z         },
2026-06-15T15:10:07.7043699Z         "int": {
2026-06-15T15:10:07.7043843Z           "complete": true,
2026-06-15T15:10:07.7044013Z           "evidence": [
2026-06-15T15:10:07.7044163Z             {
2026-06-15T15:10:07.7044377Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-15T15:10:07.7044577Z               "line": 17
2026-06-15T15:10:07.7044705Z             },
2026-06-15T15:10:07.7044877Z             {
2026-06-15T15:10:07.7045050Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T15:10:07.7045259Z               "line": 71
2026-06-15T15:10:07.7045431Z             },
2026-06-15T15:10:07.7045567Z             {
2026-06-15T15:10:07.7045782Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T15:10:07.7045922Z               "line": 91
2026-06-15T15:10:07.7046123Z             },
2026-06-15T15:10:07.7046303Z             {
2026-06-15T15:10:07.7046491Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T15:10:07.7046658Z               "line": 167
2026-06-15T15:10:07.7046786Z             },
2026-06-15T15:10:07.7046972Z             {
2026-06-15T15:10:07.7047172Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T15:10:07.7047345Z               "line": 209
2026-06-15T15:10:07.7047510Z             },
2026-06-15T15:10:07.7047655Z             {
2026-06-15T15:10:07.7047892Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T15:10:07.7048158Z               "line": 128
2026-06-15T15:10:07.7048325Z             },
2026-06-15T15:10:07.7048494Z             {
2026-06-15T15:10:07.7048671Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T15:10:07.7048876Z               "line": 59
2026-06-15T15:10:07.7049104Z             }
2026-06-15T15:10:07.7049263Z           ]
2026-06-15T15:10:07.7049428Z         },
2026-06-15T15:10:07.7049601Z         "unit": {
2026-06-15T15:10:07.7049815Z           "complete": true,
2026-06-15T15:10:07.7049968Z           "evidence": [
2026-06-15T15:10:07.7050134Z             {
2026-06-15T15:10:07.7050440Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T15:10:07.7050616Z               "line": 62
2026-06-15T15:10:07.7050808Z             },
2026-06-15T15:10:07.7050945Z             {
2026-06-15T15:10:07.7051178Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T15:10:07.7051321Z               "line": 76
2026-06-15T15:10:07.7051483Z             },
2026-06-15T15:10:07.7051593Z             {
2026-06-15T15:10:07.7051851Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T15:10:07.7052040Z               "line": 88
2026-06-15T15:10:07.7052174Z             },
2026-06-15T15:10:07.7052331Z             {
2026-06-15T15:10:07.7052499Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T15:10:07.7052743Z               "line": 294
2026-06-15T15:10:07.7052870Z             },
2026-06-15T15:10:07.7053028Z             {
2026-06-15T15:10:07.7053237Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T15:10:07.7053360Z               "line": 771
2026-06-15T15:10:07.7053592Z             },
2026-06-15T15:10:07.7053721Z             {
2026-06-15T15:10:07.7053920Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T15:10:07.7054084Z               "line": 779
2026-06-15T15:10:07.7054198Z             },
2026-06-15T15:10:07.7054432Z             {
2026-06-15T15:10:07.7054602Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T15:10:07.7054770Z               "line": 796
2026-06-15T15:10:07.7054898Z             },
2026-06-15T15:10:07.7055042Z             {
2026-06-15T15:10:07.7055315Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T15:10:07.7055442Z               "line": 850
2026-06-15T15:10:07.7055610Z             },
2026-06-15T15:10:07.7055733Z             {
2026-06-15T15:10:07.7055929Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.7056109Z               "line": 1053
2026-06-15T15:10:07.7056290Z             },
2026-06-15T15:10:07.7056454Z             {
2026-06-15T15:10:07.7056631Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.7056811Z               "line": 1065
2026-06-15T15:10:07.7056975Z             },
2026-06-15T15:10:07.7057155Z             {
2026-06-15T15:10:07.7057366Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T15:10:07.7057508Z               "line": 110
2026-06-15T15:10:07.7057679Z             },
2026-06-15T15:10:07.7057847Z             {
2026-06-15T15:10:07.7058094Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T15:10:07.7058229Z               "line": 143
2026-06-15T15:10:07.7058390Z             }
2026-06-15T15:10:07.7058544Z           ]
2026-06-15T15:10:07.7058713Z         }
2026-06-15T15:10:07.7058885Z       }
2026-06-15T15:10:07.7059106Z     },
2026-06-15T15:10:07.7059289Z     {
2026-06-15T15:10:07.7059460Z       "id": "REQ-DAEMON-3",
2026-06-15T15:10:07.7059745Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-15T15:10:07.7059937Z       "requiredStages": [
2026-06-15T15:10:07.7060085Z         "impl",
2026-06-15T15:10:07.7060256Z         "unit",
2026-06-15T15:10:07.7060379Z         "int"
2026-06-15T15:10:07.7060571Z       ],
2026-06-15T15:10:07.7060758Z       "stages": {
2026-06-15T15:10:07.7060885Z         "doc": {
2026-06-15T15:10:07.7061077Z           "complete": false,
2026-06-15T15:10:07.7061209Z           "evidence": []
2026-06-15T15:10:07.7061514Z         },
2026-06-15T15:10:07.7061666Z         "impl": {
2026-06-15T15:10:07.7061857Z           "complete": true,
2026-06-15T15:10:07.7062034Z           "evidence": [
2026-06-15T15:10:07.7062163Z             {
2026-06-15T15:10:07.7062392Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7062543Z               "line": 14
2026-06-15T15:10:07.7062721Z             },
2026-06-15T15:10:07.7062844Z             {
2026-06-15T15:10:07.7063054Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T15:10:07.7069748Z               "line": 11
2026-06-15T15:10:07.7069914Z             },
2026-06-15T15:10:07.7070178Z             {
2026-06-15T15:10:07.7070340Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T15:10:07.7070454Z               "line": 270
2026-06-15T15:10:07.7070563Z             },
2026-06-15T15:10:07.7070664Z             {
2026-06-15T15:10:07.7070801Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7070931Z               "line": 1711
2026-06-15T15:10:07.7071032Z             },
2026-06-15T15:10:07.7071136Z             {
2026-06-15T15:10:07.7071264Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7071380Z               "line": 3797
2026-06-15T15:10:07.7071479Z             },
2026-06-15T15:10:07.7071579Z             {
2026-06-15T15:10:07.7071718Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7071818Z               "line": 3818
2026-06-15T15:10:07.7071924Z             }
2026-06-15T15:10:07.7072024Z           ]
2026-06-15T15:10:07.7072126Z         },
2026-06-15T15:10:07.7072231Z         "int": {
2026-06-15T15:10:07.7072351Z           "complete": true,
2026-06-15T15:10:07.7072460Z           "evidence": [
2026-06-15T15:10:07.7072550Z             {
2026-06-15T15:10:07.7072704Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T15:10:07.7072803Z               "line": 49
2026-06-15T15:10:07.7072909Z             },
2026-06-15T15:10:07.7073009Z             {
2026-06-15T15:10:07.7073156Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T15:10:07.7073277Z               "line": 487
2026-06-15T15:10:07.7073381Z             }
2026-06-15T15:10:07.7073485Z           ]
2026-06-15T15:10:07.7073587Z         },
2026-06-15T15:10:07.7073690Z         "unit": {
2026-06-15T15:10:07.7073814Z           "complete": true,
2026-06-15T15:10:07.7073916Z           "evidence": [
2026-06-15T15:10:07.7074019Z             {
2026-06-15T15:10:07.7074168Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7074277Z               "line": 767
2026-06-15T15:10:07.7074381Z             },
2026-06-15T15:10:07.7074486Z             {
2026-06-15T15:10:07.7074622Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7074731Z               "line": 9112
2026-06-15T15:10:07.7074836Z             }
2026-06-15T15:10:07.7074937Z           ]
2026-06-15T15:10:07.7075041Z         }
2026-06-15T15:10:07.7075141Z       }
2026-06-15T15:10:07.7075256Z     },
2026-06-15T15:10:07.7075356Z     {
2026-06-15T15:10:07.7075471Z       "id": "REQ-DAEMON-4",
2026-06-15T15:10:07.7075623Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-15T15:10:07.7075737Z       "requiredStages": [
2026-06-15T15:10:07.7075847Z         "impl",
2026-06-15T15:10:07.7075947Z         "unit",
2026-06-15T15:10:07.7076057Z         "int"
2026-06-15T15:10:07.7076158Z       ],
2026-06-15T15:10:07.7076257Z       "stages": {
2026-06-15T15:10:07.7076366Z         "doc": {
2026-06-15T15:10:07.7076473Z           "complete": false,
2026-06-15T15:10:07.7076576Z           "evidence": []
2026-06-15T15:10:07.7076681Z         },
2026-06-15T15:10:07.7076802Z         "impl": {
2026-06-15T15:10:07.7076924Z           "complete": true,
2026-06-15T15:10:07.7077040Z           "evidence": [
2026-06-15T15:10:07.7077149Z             {
2026-06-15T15:10:07.7077300Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7077415Z               "line": 414
2026-06-15T15:10:07.7077626Z             },
2026-06-15T15:10:07.7077728Z             {
2026-06-15T15:10:07.7077880Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7077989Z               "line": 479
2026-06-15T15:10:07.7078095Z             },
2026-06-15T15:10:07.7078194Z             {
2026-06-15T15:10:07.7078348Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7078448Z               "line": 501
2026-06-15T15:10:07.7078552Z             }
2026-06-15T15:10:07.7078657Z           ]
2026-06-15T15:10:07.7078757Z         },
2026-06-15T15:10:07.7078857Z         "int": {
2026-06-15T15:10:07.7079048Z           "complete": true,
2026-06-15T15:10:07.7079282Z           "evidence": [
2026-06-15T15:10:07.7079383Z             {
2026-06-15T15:10:07.7079548Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T15:10:07.7079664Z               "line": 37
2026-06-15T15:10:07.7079758Z             }
2026-06-15T15:10:07.7079862Z           ]
2026-06-15T15:10:07.7079963Z         },
2026-06-15T15:10:07.7080071Z         "unit": {
2026-06-15T15:10:07.7080184Z           "complete": true,
2026-06-15T15:10:07.7080303Z           "evidence": [
2026-06-15T15:10:07.7080404Z             {
2026-06-15T15:10:07.7080560Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T15:10:07.7080667Z               "line": 428
2026-06-15T15:10:07.7080766Z             },
2026-06-15T15:10:07.7080866Z             {
2026-06-15T15:10:07.7081010Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7081128Z               "line": 907
2026-06-15T15:10:07.7081230Z             },
2026-06-15T15:10:07.7081324Z             {
2026-06-15T15:10:07.7081481Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7081587Z               "line": 977
2026-06-15T15:10:07.7081686Z             },
2026-06-15T15:10:07.7081786Z             {
2026-06-15T15:10:07.7081949Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7082063Z               "line": 1007
2026-06-15T15:10:07.7082174Z             },
2026-06-15T15:10:07.7082278Z             {
2026-06-15T15:10:07.7082420Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7082536Z               "line": 1040
2026-06-15T15:10:07.7082640Z             }
2026-06-15T15:10:07.7082739Z           ]
2026-06-15T15:10:07.7082844Z         }
2026-06-15T15:10:07.7082941Z       }
2026-06-15T15:10:07.7083044Z     },
2026-06-15T15:10:07.7083145Z     {
2026-06-15T15:10:07.7083259Z       "id": "REQ-DAEMON-5",
2026-06-15T15:10:07.7084713Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-15T15:10:07.7084842Z       "requiredStages": [
2026-06-15T15:10:07.7084951Z         "impl",
2026-06-15T15:10:07.7085051Z         "unit"
2026-06-15T15:10:07.7085160Z       ],
2026-06-15T15:10:07.7085263Z       "stages": {
2026-06-15T15:10:07.7085368Z         "doc": {
2026-06-15T15:10:07.7085488Z           "complete": false,
2026-06-15T15:10:07.7085591Z           "evidence": []
2026-06-15T15:10:07.7085697Z         },
2026-06-15T15:10:07.7085797Z         "impl": {
2026-06-15T15:10:07.7085920Z           "complete": true,
2026-06-15T15:10:07.7086031Z           "evidence": [
2026-06-15T15:10:07.7086131Z             {
2026-06-15T15:10:07.7086292Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7086399Z               "line": 476
2026-06-15T15:10:07.7086503Z             },
2026-06-15T15:10:07.7086607Z             {
2026-06-15T15:10:07.7086755Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7086874Z               "line": 769
2026-06-15T15:10:07.7086975Z             },
2026-06-15T15:10:07.7087189Z             {
2026-06-15T15:10:07.7087334Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7087446Z               "line": 782
2026-06-15T15:10:07.7087547Z             },
2026-06-15T15:10:07.7087653Z             {
2026-06-15T15:10:07.7087803Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7087913Z               "line": 800
2026-06-15T15:10:07.7088017Z             },
2026-06-15T15:10:07.7088120Z             {
2026-06-15T15:10:07.7088263Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7088369Z               "line": 841
2026-06-15T15:10:07.7088473Z             }
2026-06-15T15:10:07.7088655Z           ]
2026-06-15T15:10:07.7088750Z         },
2026-06-15T15:10:07.7088859Z         "int": {
2026-06-15T15:10:07.7089027Z           "complete": false,
2026-06-15T15:10:07.7089141Z           "evidence": []
2026-06-15T15:10:07.7089232Z         },
2026-06-15T15:10:07.7089341Z         "unit": {
2026-06-15T15:10:07.7089498Z           "complete": true,
2026-06-15T15:10:07.7089604Z           "evidence": [
2026-06-15T15:10:07.7089708Z             {
2026-06-15T15:10:07.7089852Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7089975Z               "line": 1189
2026-06-15T15:10:07.7090071Z             },
2026-06-15T15:10:07.7090167Z             {
2026-06-15T15:10:07.7090309Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7090413Z               "line": 1213
2026-06-15T15:10:07.7090523Z             },
2026-06-15T15:10:07.7090621Z             {
2026-06-15T15:10:07.7090772Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7090878Z               "line": 1239
2026-06-15T15:10:07.7090983Z             }
2026-06-15T15:10:07.7091082Z           ]
2026-06-15T15:10:07.7091184Z         }
2026-06-15T15:10:07.7091289Z       }
2026-06-15T15:10:07.7091387Z     },
2026-06-15T15:10:07.7091484Z     {
2026-06-15T15:10:07.7091603Z       "id": "REQ-DAEMON-6",
2026-06-15T15:10:07.7093613Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-15T15:10:07.7093743Z       "requiredStages": [
2026-06-15T15:10:07.7093848Z         "impl",
2026-06-15T15:10:07.7093952Z         "unit"
2026-06-15T15:10:07.7094053Z       ],
2026-06-15T15:10:07.7094153Z       "stages": {
2026-06-15T15:10:07.7094262Z         "doc": {
2026-06-15T15:10:07.7094373Z           "complete": false,
2026-06-15T15:10:07.7094491Z           "evidence": []
2026-06-15T15:10:07.7094596Z         },
2026-06-15T15:10:07.7094702Z         "impl": {
2026-06-15T15:10:07.7094820Z           "complete": true,
2026-06-15T15:10:07.7094925Z           "evidence": [
2026-06-15T15:10:07.7095026Z             {
2026-06-15T15:10:07.7095173Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7095293Z               "line": 426
2026-06-15T15:10:07.7095393Z             },
2026-06-15T15:10:07.7095501Z             {
2026-06-15T15:10:07.7095634Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7095743Z               "line": 457
2026-06-15T15:10:07.7095847Z             },
2026-06-15T15:10:07.7095952Z             {
2026-06-15T15:10:07.7096095Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T15:10:07.7096199Z               "line": 55
2026-06-15T15:10:07.7096305Z             },
2026-06-15T15:10:07.7096415Z             {
2026-06-15T15:10:07.7096663Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T15:10:07.7096776Z               "line": 70
2026-06-15T15:10:07.7096882Z             },
2026-06-15T15:10:07.7096987Z             {
2026-06-15T15:10:07.7097119Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7097235Z               "line": 1765
2026-06-15T15:10:07.7097334Z             },
2026-06-15T15:10:07.7097434Z             {
2026-06-15T15:10:07.7097569Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7097677Z               "line": 1791
2026-06-15T15:10:07.7097782Z             }
2026-06-15T15:10:07.7097884Z           ]
2026-06-15T15:10:07.7097987Z         },
2026-06-15T15:10:07.7098189Z         "int": {
2026-06-15T15:10:07.7098302Z           "complete": false,
2026-06-15T15:10:07.7098416Z           "evidence": []
2026-06-15T15:10:07.7098516Z         },
2026-06-15T15:10:07.7098624Z         "unit": {
2026-06-15T15:10:07.7098728Z           "complete": true,
2026-06-15T15:10:07.7098843Z           "evidence": [
2026-06-15T15:10:07.7099023Z             {
2026-06-15T15:10:07.7099168Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T15:10:07.7099282Z               "line": 288
2026-06-15T15:10:07.7099376Z             },
2026-06-15T15:10:07.7099483Z             {
2026-06-15T15:10:07.7099620Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T15:10:07.7099734Z               "line": 299
2026-06-15T15:10:07.7099840Z             },
2026-06-15T15:10:07.7099944Z             {
2026-06-15T15:10:07.7100088Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T15:10:07.7100192Z               "line": 325
2026-06-15T15:10:07.7100292Z             },
2026-06-15T15:10:07.7100398Z             {
2026-06-15T15:10:07.7100535Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T15:10:07.7100650Z               "line": 351
2026-06-15T15:10:07.7100746Z             }
2026-06-15T15:10:07.7100850Z           ]
2026-06-15T15:10:07.7100949Z         }
2026-06-15T15:10:07.7101054Z       }
2026-06-15T15:10:07.7101158Z     },
2026-06-15T15:10:07.7101262Z     {
2026-06-15T15:10:07.7101371Z       "id": "REQ-DAEMON-7",
2026-06-15T15:10:07.7102811Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-15T15:10:07.7102935Z       "requiredStages": [
2026-06-15T15:10:07.7103041Z         "impl",
2026-06-15T15:10:07.7103145Z         "unit"
2026-06-15T15:10:07.7103250Z       ],
2026-06-15T15:10:07.7103351Z       "stages": {
2026-06-15T15:10:07.7103450Z         "doc": {
2026-06-15T15:10:07.7103555Z           "complete": false,
2026-06-15T15:10:07.7103671Z           "evidence": []
2026-06-15T15:10:07.7103774Z         },
2026-06-15T15:10:07.7103878Z         "impl": {
2026-06-15T15:10:07.7103993Z           "complete": true,
2026-06-15T15:10:07.7104098Z           "evidence": [
2026-06-15T15:10:07.7104197Z             {
2026-06-15T15:10:07.7104342Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7104455Z               "line": 476
2026-06-15T15:10:07.7104560Z             },
2026-06-15T15:10:07.7104656Z             {
2026-06-15T15:10:07.7104798Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7104904Z               "line": 601
2026-06-15T15:10:07.7105014Z             },
2026-06-15T15:10:07.7105118Z             {
2026-06-15T15:10:07.7105267Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T15:10:07.7105380Z               "line": 89
2026-06-15T15:10:07.7105485Z             },
2026-06-15T15:10:07.7105586Z             {
2026-06-15T15:10:07.7105718Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7105930Z               "line": 1712
2026-06-15T15:10:07.7106033Z             }
2026-06-15T15:10:07.7106137Z           ]
2026-06-15T15:10:07.7106242Z         },
2026-06-15T15:10:07.7106345Z         "int": {
2026-06-15T15:10:07.7106464Z           "complete": false,
2026-06-15T15:10:07.7106570Z           "evidence": []
2026-06-15T15:10:07.7106670Z         },
2026-06-15T15:10:07.7106769Z         "unit": {
2026-06-15T15:10:07.7106885Z           "complete": true,
2026-06-15T15:10:07.7106999Z           "evidence": [
2026-06-15T15:10:07.7107093Z             {
2026-06-15T15:10:07.7107228Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T15:10:07.7107337Z               "line": 314
2026-06-15T15:10:07.7107542Z             },
2026-06-15T15:10:07.7107647Z             {
2026-06-15T15:10:07.7107781Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7107895Z               "line": 6652
2026-06-15T15:10:07.7107999Z             }
2026-06-15T15:10:07.7108106Z           ]
2026-06-15T15:10:07.7108210Z         }
2026-06-15T15:10:07.7108309Z       }
2026-06-15T15:10:07.7108411Z     },
2026-06-15T15:10:07.7108515Z     {
2026-06-15T15:10:07.7108629Z       "id": "REQ-DAEMON-8",
2026-06-15T15:10:07.7109674Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-15T15:10:07.7109799Z       "requiredStages": [
2026-06-15T15:10:07.7109903Z         "impl",
2026-06-15T15:10:07.7110019Z         "unit"
2026-06-15T15:10:07.7110123Z       ],
2026-06-15T15:10:07.7110227Z       "stages": {
2026-06-15T15:10:07.7110333Z         "doc": {
2026-06-15T15:10:07.7110438Z           "complete": false,
2026-06-15T15:10:07.7110552Z           "evidence": []
2026-06-15T15:10:07.7110653Z         },
2026-06-15T15:10:07.7110767Z         "impl": {
2026-06-15T15:10:07.7110890Z           "complete": true,
2026-06-15T15:10:07.7110996Z           "evidence": [
2026-06-15T15:10:07.7111095Z             {
2026-06-15T15:10:07.7111229Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7111340Z               "line": 376
2026-06-15T15:10:07.7111443Z             },
2026-06-15T15:10:07.7111542Z             {
2026-06-15T15:10:07.7111691Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T15:10:07.7111788Z               "line": 56
2026-06-15T15:10:07.7111888Z             }
2026-06-15T15:10:07.7111989Z           ]
2026-06-15T15:10:07.7112094Z         },
2026-06-15T15:10:07.7112198Z         "int": {
2026-06-15T15:10:07.7112323Z           "complete": false,
2026-06-15T15:10:07.7112432Z           "evidence": []
2026-06-15T15:10:07.7112532Z         },
2026-06-15T15:10:07.7112638Z         "unit": {
2026-06-15T15:10:07.7112742Z           "complete": true,
2026-06-15T15:10:07.7112861Z           "evidence": [
2026-06-15T15:10:07.7112967Z             {
2026-06-15T15:10:07.7113113Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T15:10:07.7113224Z               "line": 288
2026-06-15T15:10:07.7113324Z             },
2026-06-15T15:10:07.7113428Z             {
2026-06-15T15:10:07.7113573Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T15:10:07.7113681Z               "line": 325
2026-06-15T15:10:07.7113796Z             }
2026-06-15T15:10:07.7113888Z           ]
2026-06-15T15:10:07.7113991Z         }
2026-06-15T15:10:07.7114092Z       }
2026-06-15T15:10:07.7114193Z     },
2026-06-15T15:10:07.7114296Z     {
2026-06-15T15:10:07.7114409Z       "id": "REQ-DAEMON-9",
2026-06-15T15:10:07.7120816Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-15T15:10:07.7121121Z       "requiredStages": [
2026-06-15T15:10:07.7121218Z         "impl",
2026-06-15T15:10:07.7121322Z         "unit"
2026-06-15T15:10:07.7121422Z       ],
2026-06-15T15:10:07.7121633Z       "stages": {
2026-06-15T15:10:07.7121742Z         "doc": {
2026-06-15T15:10:07.7121848Z           "complete": false,
2026-06-15T15:10:07.7121957Z           "evidence": []
2026-06-15T15:10:07.7122060Z         },
2026-06-15T15:10:07.7122165Z         "impl": {
2026-06-15T15:10:07.7122265Z           "complete": true,
2026-06-15T15:10:07.7122377Z           "evidence": [
2026-06-15T15:10:07.7122487Z             {
2026-06-15T15:10:07.7122649Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7122763Z               "line": 276
2026-06-15T15:10:07.7122869Z             },
2026-06-15T15:10:07.7122969Z             {
2026-06-15T15:10:07.7123116Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7123231Z               "line": 600
2026-06-15T15:10:07.7123330Z             },
2026-06-15T15:10:07.7123431Z             {
2026-06-15T15:10:07.7123578Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7123678Z               "line": 190
2026-06-15T15:10:07.7123789Z             },
2026-06-15T15:10:07.7123875Z             {
2026-06-15T15:10:07.7124022Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7124138Z               "line": 275
2026-06-15T15:10:07.7124236Z             },
2026-06-15T15:10:07.7124342Z             {
2026-06-15T15:10:07.7124491Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7124599Z               "line": 312
2026-06-15T15:10:07.7124705Z             },
2026-06-15T15:10:07.7124806Z             {
2026-06-15T15:10:07.7124942Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7125042Z               "line": 1820
2026-06-15T15:10:07.7125147Z             }
2026-06-15T15:10:07.7125247Z           ]
2026-06-15T15:10:07.7125351Z         },
2026-06-15T15:10:07.7125457Z         "int": {
2026-06-15T15:10:07.7125575Z           "complete": false,
2026-06-15T15:10:07.7125695Z           "evidence": []
2026-06-15T15:10:07.7125790Z         },
2026-06-15T15:10:07.7125904Z         "unit": {
2026-06-15T15:10:07.7126014Z           "complete": true,
2026-06-15T15:10:07.7126129Z           "evidence": [
2026-06-15T15:10:07.7126233Z             {
2026-06-15T15:10:07.7126387Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7126505Z               "line": 723
2026-06-15T15:10:07.7126610Z             },
2026-06-15T15:10:07.7126716Z             {
2026-06-15T15:10:07.7126839Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7126954Z               "line": 8977
2026-06-15T15:10:07.7127040Z             }
2026-06-15T15:10:07.7127149Z           ]
2026-06-15T15:10:07.7127253Z         }
2026-06-15T15:10:07.7127358Z       }
2026-06-15T15:10:07.7127461Z     },
2026-06-15T15:10:07.7127555Z     {
2026-06-15T15:10:07.7127675Z       "id": "REQ-DOCS-1",
2026-06-15T15:10:07.7127899Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-15T15:10:07.7128024Z       "requiredStages": [
2026-06-15T15:10:07.7128133Z         "doc",
2026-06-15T15:10:07.7128238Z         "impl"
2026-06-15T15:10:07.7128334Z       ],
2026-06-15T15:10:07.7128438Z       "stages": {
2026-06-15T15:10:07.7128538Z         "doc": {
2026-06-15T15:10:07.7128653Z           "complete": true,
2026-06-15T15:10:07.7128777Z           "evidence": [
2026-06-15T15:10:07.7128877Z             {
2026-06-15T15:10:07.7129177Z               "path": "docs-site/src/index.md",
2026-06-15T15:10:07.7129302Z               "line": 50
2026-06-15T15:10:07.7129421Z             }
2026-06-15T15:10:07.7129521Z           ]
2026-06-15T15:10:07.7129617Z         },
2026-06-15T15:10:07.7129725Z         "impl": {
2026-06-15T15:10:07.7129841Z           "complete": true,
2026-06-15T15:10:07.7129941Z           "evidence": [
2026-06-15T15:10:07.7130044Z             {
2026-06-15T15:10:07.7130206Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T15:10:07.7130309Z               "line": 12
2026-06-15T15:10:07.7130413Z             },
2026-06-15T15:10:07.7130514Z             {
2026-06-15T15:10:07.7130761Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.7130867Z               "line": 14
2026-06-15T15:10:07.7130972Z             }
2026-06-15T15:10:07.7131066Z           ]
2026-06-15T15:10:07.7131167Z         },
2026-06-15T15:10:07.7131272Z         "int": {
2026-06-15T15:10:07.7131390Z           "complete": false,
2026-06-15T15:10:07.7131511Z           "evidence": []
2026-06-15T15:10:07.7131605Z         },
2026-06-15T15:10:07.7131710Z         "unit": {
2026-06-15T15:10:07.7131811Z           "complete": false,
2026-06-15T15:10:07.7131934Z           "evidence": []
2026-06-15T15:10:07.7132030Z         }
2026-06-15T15:10:07.7132136Z       }
2026-06-15T15:10:07.7132240Z     },
2026-06-15T15:10:07.7132330Z     {
2026-06-15T15:10:07.7132441Z       "id": "REQ-DOCS-2",
2026-06-15T15:10:07.7132634Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-15T15:10:07.7132754Z       "requiredStages": [
2026-06-15T15:10:07.7132858Z         "doc",
2026-06-15T15:10:07.7132970Z         "int"
2026-06-15T15:10:07.7133076Z       ],
2026-06-15T15:10:07.7133182Z       "stages": {
2026-06-15T15:10:07.7133280Z         "doc": {
2026-06-15T15:10:07.7133391Z           "complete": true,
2026-06-15T15:10:07.7133500Z           "evidence": [
2026-06-15T15:10:07.7133599Z             {
2026-06-15T15:10:07.7133805Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-15T15:10:07.7133919Z               "line": 3
2026-06-15T15:10:07.7134025Z             },
2026-06-15T15:10:07.7134129Z             {
2026-06-15T15:10:07.7134282Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-15T15:10:07.7134398Z               "line": 3
2026-06-15T15:10:07.7134497Z             },
2026-06-15T15:10:07.7134597Z             {
2026-06-15T15:10:07.7134759Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T15:10:07.7134859Z               "line": 3
2026-06-15T15:10:07.7134960Z             }
2026-06-15T15:10:07.7135060Z           ]
2026-06-15T15:10:07.7135169Z         },
2026-06-15T15:10:07.7135275Z         "impl": {
2026-06-15T15:10:07.7135398Z           "complete": false,
2026-06-15T15:10:07.7135511Z           "evidence": []
2026-06-15T15:10:07.7135611Z         },
2026-06-15T15:10:07.7135717Z         "int": {
2026-06-15T15:10:07.7135830Z           "complete": true,
2026-06-15T15:10:07.7135936Z           "evidence": [
2026-06-15T15:10:07.7136041Z             {
2026-06-15T15:10:07.7136193Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T15:10:07.7136304Z               "line": 14
2026-06-15T15:10:07.7136404Z             }
2026-06-15T15:10:07.7136517Z           ]
2026-06-15T15:10:07.7136614Z         },
2026-06-15T15:10:07.7136722Z         "unit": {
2026-06-15T15:10:07.7136832Z           "complete": false,
2026-06-15T15:10:07.7136948Z           "evidence": []
2026-06-15T15:10:07.7137042Z         }
2026-06-15T15:10:07.7137147Z       }
2026-06-15T15:10:07.7137248Z     },
2026-06-15T15:10:07.7137347Z     {
2026-06-15T15:10:07.7137466Z       "id": "REQ-DOCS-3",
2026-06-15T15:10:07.7137709Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-15T15:10:07.7137832Z       "requiredStages": [
2026-06-15T15:10:07.7137941Z         "doc"
2026-06-15T15:10:07.7138035Z       ],
2026-06-15T15:10:07.7138149Z       "stages": {
2026-06-15T15:10:07.7138354Z         "doc": {
2026-06-15T15:10:07.7138474Z           "complete": true,
2026-06-15T15:10:07.7138579Z           "evidence": [
2026-06-15T15:10:07.7138683Z             {
2026-06-15T15:10:07.7138827Z               "path": "docs-site/src/index.md",
2026-06-15T15:10:07.7138927Z               "line": 42
2026-06-15T15:10:07.7139355Z             }
2026-06-15T15:10:07.7139451Z           ]
2026-06-15T15:10:07.7139556Z         },
2026-06-15T15:10:07.7139661Z         "impl": {
2026-06-15T15:10:07.7139781Z           "complete": false,
2026-06-15T15:10:07.7139899Z           "evidence": []
2026-06-15T15:10:07.7139999Z         },
2026-06-15T15:10:07.7140096Z         "int": {
2026-06-15T15:10:07.7140319Z           "complete": false,
2026-06-15T15:10:07.7140435Z           "evidence": []
2026-06-15T15:10:07.7140534Z         },
2026-06-15T15:10:07.7140651Z         "unit": {
2026-06-15T15:10:07.7140762Z           "complete": false,
2026-06-15T15:10:07.7140869Z           "evidence": []
2026-06-15T15:10:07.7140973Z         }
2026-06-15T15:10:07.7141079Z       }
2026-06-15T15:10:07.7141179Z     },
2026-06-15T15:10:07.7141283Z     {
2026-06-15T15:10:07.7141404Z       "id": "REQ-DOCS-4",
2026-06-15T15:10:07.7141631Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-15T15:10:07.7141756Z       "requiredStages": [
2026-06-15T15:10:07.7141856Z         "doc",
2026-06-15T15:10:07.7141960Z         "impl",
2026-06-15T15:10:07.7142057Z         "unit"
2026-06-15T15:10:07.7142156Z       ],
2026-06-15T15:10:07.7142265Z       "stages": {
2026-06-15T15:10:07.7142367Z         "doc": {
2026-06-15T15:10:07.7142476Z           "complete": true,
2026-06-15T15:10:07.7142595Z           "evidence": [
2026-06-15T15:10:07.7142701Z             {
2026-06-15T15:10:07.7142837Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-15T15:10:07.7142944Z               "line": 35
2026-06-15T15:10:07.7143044Z             }
2026-06-15T15:10:07.7143147Z           ]
2026-06-15T15:10:07.7143247Z         },
2026-06-15T15:10:07.7143356Z         "impl": {
2026-06-15T15:10:07.7143464Z           "complete": true,
2026-06-15T15:10:07.7143578Z           "evidence": [
2026-06-15T15:10:07.7143669Z             {
2026-06-15T15:10:07.7143817Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7143926Z               "line": 621
2026-06-15T15:10:07.7144032Z             },
2026-06-15T15:10:07.7144141Z             {
2026-06-15T15:10:07.7144275Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.7144384Z               "line": 15
2026-06-15T15:10:07.7144484Z             }
2026-06-15T15:10:07.7144595Z           ]
2026-06-15T15:10:07.7144699Z         },
2026-06-15T15:10:07.7144808Z         "int": {
2026-06-15T15:10:07.7144924Z           "complete": false,
2026-06-15T15:10:07.7145037Z           "evidence": []
2026-06-15T15:10:07.7145137Z         },
2026-06-15T15:10:07.7145243Z         "unit": {
2026-06-15T15:10:07.7145357Z           "complete": true,
2026-06-15T15:10:07.7145471Z           "evidence": [
2026-06-15T15:10:07.7145568Z             {
2026-06-15T15:10:07.7145719Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7145830Z               "line": 1280
2026-06-15T15:10:07.7145931Z             }
2026-06-15T15:10:07.7146033Z           ]
2026-06-15T15:10:07.7146137Z         }
2026-06-15T15:10:07.7146244Z       }
2026-06-15T15:10:07.7146343Z     },
2026-06-15T15:10:07.7146443Z     {
2026-06-15T15:10:07.7146559Z       "id": "REQ-DOCS-5",
2026-06-15T15:10:07.7146786Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-15T15:10:07.7146902Z       "requiredStages": [
2026-06-15T15:10:07.7147006Z         "impl",
2026-06-15T15:10:07.7147125Z         "int"
2026-06-15T15:10:07.7147230Z       ],
2026-06-15T15:10:07.7147335Z       "stages": {
2026-06-15T15:10:07.7147435Z         "doc": {
2026-06-15T15:10:07.7147555Z           "complete": false,
2026-06-15T15:10:07.7147654Z           "evidence": []
2026-06-15T15:10:07.7147765Z         },
2026-06-15T15:10:07.7147978Z         "impl": {
2026-06-15T15:10:07.7148099Z           "complete": true,
2026-06-15T15:10:07.7148203Z           "evidence": [
2026-06-15T15:10:07.7148302Z             {
2026-06-15T15:10:07.7148450Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7148553Z               "line": 622
2026-06-15T15:10:07.7148657Z             },
2026-06-15T15:10:07.7148762Z             {
2026-06-15T15:10:07.7148900Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.7149144Z               "line": 113
2026-06-15T15:10:07.7149239Z             }
2026-06-15T15:10:07.7149338Z           ]
2026-06-15T15:10:07.7149440Z         },
2026-06-15T15:10:07.7149653Z         "int": {
2026-06-15T15:10:07.7149769Z           "complete": true,
2026-06-15T15:10:07.7149873Z           "evidence": [
2026-06-15T15:10:07.7149978Z             {
2026-06-15T15:10:07.7150107Z               "path": ".github/workflows/ci.yml",
2026-06-15T15:10:07.7150211Z               "line": 126
2026-06-15T15:10:07.7150317Z             },
2026-06-15T15:10:07.7150412Z             {
2026-06-15T15:10:07.7150564Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7150670Z               "line": 1317
2026-06-15T15:10:07.7150774Z             }
2026-06-15T15:10:07.7150874Z           ]
2026-06-15T15:10:07.7150975Z         },
2026-06-15T15:10:07.7151080Z         "unit": {
2026-06-15T15:10:07.7151202Z           "complete": false,
2026-06-15T15:10:07.7151307Z           "evidence": []
2026-06-15T15:10:07.7151406Z         }
2026-06-15T15:10:07.7151510Z       }
2026-06-15T15:10:07.7151610Z     },
2026-06-15T15:10:07.7151706Z     {
2026-06-15T15:10:07.7151810Z       "id": "REQ-DOCS-6",
2026-06-15T15:10:07.7152182Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-15T15:10:07.7152302Z       "requiredStages": [
2026-06-15T15:10:07.7152402Z         "impl",
2026-06-15T15:10:07.7152506Z         "unit",
2026-06-15T15:10:07.7152603Z         "int"
2026-06-15T15:10:07.7152707Z       ],
2026-06-15T15:10:07.7152807Z       "stages": {
2026-06-15T15:10:07.7152908Z         "doc": {
2026-06-15T15:10:07.7153036Z           "complete": true,
2026-06-15T15:10:07.7153131Z           "evidence": [
2026-06-15T15:10:07.7153237Z             {
2026-06-15T15:10:07.7153398Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T15:10:07.7153513Z               "line": 4
2026-06-15T15:10:07.7153613Z             }
2026-06-15T15:10:07.7153717Z           ]
2026-06-15T15:10:07.7153816Z         },
2026-06-15T15:10:07.7153921Z         "impl": {
2026-06-15T15:10:07.7154039Z           "complete": true,
2026-06-15T15:10:07.7154148Z           "evidence": [
2026-06-15T15:10:07.7154254Z             {
2026-06-15T15:10:07.7154382Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7154496Z               "line": 4699
2026-06-15T15:10:07.7154593Z             }
2026-06-15T15:10:07.7154696Z           ]
2026-06-15T15:10:07.7154796Z         },
2026-06-15T15:10:07.7154897Z         "int": {
2026-06-15T15:10:07.7155011Z           "complete": true,
2026-06-15T15:10:07.7155126Z           "evidence": [
2026-06-15T15:10:07.7155231Z             {
2026-06-15T15:10:07.7155387Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T15:10:07.7155489Z               "line": 39
2026-06-15T15:10:07.7155588Z             }
2026-06-15T15:10:07.7155688Z           ]
2026-06-15T15:10:07.7155790Z         },
2026-06-15T15:10:07.7155898Z         "unit": {
2026-06-15T15:10:07.7156017Z           "complete": true,
2026-06-15T15:10:07.7156133Z           "evidence": [
2026-06-15T15:10:07.7156232Z             {
2026-06-15T15:10:07.7156371Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7156481Z               "line": 9139
2026-06-15T15:10:07.7156594Z             }
2026-06-15T15:10:07.7156693Z           ]
2026-06-15T15:10:07.7156842Z         }
2026-06-15T15:10:07.7157104Z       }
2026-06-15T15:10:07.7162209Z     },
2026-06-15T15:10:07.7162524Z     {
2026-06-15T15:10:07.7162652Z       "id": "REQ-ELEVATE-1",
2026-06-15T15:10:07.7165900Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-15T15:10:07.7166168Z       "requiredStages": [
2026-06-15T15:10:07.7166277Z         "doc",
2026-06-15T15:10:07.7166392Z         "impl",
2026-06-15T15:10:07.7166491Z         "unit"
2026-06-15T15:10:07.7166596Z       ],
2026-06-15T15:10:07.7166707Z       "stages": {
2026-06-15T15:10:07.7166816Z         "doc": {
2026-06-15T15:10:07.7166936Z           "complete": true,
2026-06-15T15:10:07.7167041Z           "evidence": [
2026-06-15T15:10:07.7167154Z             {
2026-06-15T15:10:07.7167272Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.7167383Z               "line": 631
2026-06-15T15:10:07.7167492Z             }
2026-06-15T15:10:07.7167592Z           ]
2026-06-15T15:10:07.7167698Z         },
2026-06-15T15:10:07.7167807Z         "impl": {
2026-06-15T15:10:07.7167921Z           "complete": true,
2026-06-15T15:10:07.7168031Z           "evidence": [
2026-06-15T15:10:07.7168140Z             {
2026-06-15T15:10:07.7168280Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7168389Z               "line": 3134
2026-06-15T15:10:07.7168488Z             },
2026-06-15T15:10:07.7168590Z             {
2026-06-15T15:10:07.7168722Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7168822Z               "line": 3179
2026-06-15T15:10:07.7168928Z             },
2026-06-15T15:10:07.7169180Z             {
2026-06-15T15:10:07.7169300Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7169427Z               "line": 3241
2026-06-15T15:10:07.7169546Z             },
2026-06-15T15:10:07.7169650Z             {
2026-06-15T15:10:07.7169796Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7169911Z               "line": 92
2026-06-15T15:10:07.7170011Z             },
2026-06-15T15:10:07.7170116Z             {
2026-06-15T15:10:07.7170246Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7170355Z               "line": 148
2026-06-15T15:10:07.7170464Z             }
2026-06-15T15:10:07.7170565Z           ]
2026-06-15T15:10:07.7170660Z         },
2026-06-15T15:10:07.7170769Z         "int": {
2026-06-15T15:10:07.7170875Z           "complete": false,
2026-06-15T15:10:07.7170989Z           "evidence": []
2026-06-15T15:10:07.7171089Z         },
2026-06-15T15:10:07.7171190Z         "unit": {
2026-06-15T15:10:07.7171299Z           "complete": true,
2026-06-15T15:10:07.7171418Z           "evidence": [
2026-06-15T15:10:07.7171519Z             {
2026-06-15T15:10:07.7171661Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7171767Z               "line": 442
2026-06-15T15:10:07.7171876Z             },
2026-06-15T15:10:07.7171976Z             {
2026-06-15T15:10:07.7172101Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7172205Z               "line": 460
2026-06-15T15:10:07.7172308Z             }
2026-06-15T15:10:07.7172413Z           ]
2026-06-15T15:10:07.7172508Z         }
2026-06-15T15:10:07.7172726Z       }
2026-06-15T15:10:07.7172826Z     },
2026-06-15T15:10:07.7172926Z     {
2026-06-15T15:10:07.7173045Z       "id": "REQ-EP-1",
2026-06-15T15:10:07.7173213Z       "title": "Day-one endpoint types; open type system",
2026-06-15T15:10:07.7173317Z       "requiredStages": [
2026-06-15T15:10:07.7173423Z         "impl",
2026-06-15T15:10:07.7173518Z         "unit"
2026-06-15T15:10:07.7173626Z       ],
2026-06-15T15:10:07.7173728Z       "stages": {
2026-06-15T15:10:07.7173856Z         "doc": {
2026-06-15T15:10:07.7173974Z           "complete": false,
2026-06-15T15:10:07.7174086Z           "evidence": []
2026-06-15T15:10:07.7174213Z         },
2026-06-15T15:10:07.7174419Z         "impl": {
2026-06-15T15:10:07.7174537Z           "complete": true,
2026-06-15T15:10:07.7174639Z           "evidence": [
2026-06-15T15:10:07.7174743Z             {
2026-06-15T15:10:07.7174908Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T15:10:07.7175013Z               "line": 77
2026-06-15T15:10:07.7175126Z             },
2026-06-15T15:10:07.7175225Z             {
2026-06-15T15:10:07.7175374Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T15:10:07.7175478Z               "line": 94
2026-06-15T15:10:07.7175578Z             }
2026-06-15T15:10:07.7175693Z           ]
2026-06-15T15:10:07.7175793Z         },
2026-06-15T15:10:07.7175897Z         "int": {
2026-06-15T15:10:07.7176012Z           "complete": false,
2026-06-15T15:10:07.7176136Z           "evidence": []
2026-06-15T15:10:07.7176227Z         },
2026-06-15T15:10:07.7176337Z         "unit": {
2026-06-15T15:10:07.7176456Z           "complete": true,
2026-06-15T15:10:07.7176566Z           "evidence": [
2026-06-15T15:10:07.7176680Z             {
2026-06-15T15:10:07.7176818Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T15:10:07.7176934Z               "line": 161
2026-06-15T15:10:07.7177033Z             },
2026-06-15T15:10:07.7177138Z             {
2026-06-15T15:10:07.7177291Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T15:10:07.7177395Z               "line": 178
2026-06-15T15:10:07.7177496Z             }
2026-06-15T15:10:07.7177592Z           ]
2026-06-15T15:10:07.7177695Z         }
2026-06-15T15:10:07.7177794Z       }
2026-06-15T15:10:07.7177900Z     },
2026-06-15T15:10:07.7178000Z     {
2026-06-15T15:10:07.7178113Z       "id": "REQ-EP-2",
2026-06-15T15:10:07.7178305Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-15T15:10:07.7178423Z       "requiredStages": [
2026-06-15T15:10:07.7178530Z         "impl",
2026-06-15T15:10:07.7178629Z         "unit"
2026-06-15T15:10:07.7178734Z       ],
2026-06-15T15:10:07.7178845Z       "stages": {
2026-06-15T15:10:07.7179020Z         "doc": {
2026-06-15T15:10:07.7179155Z           "complete": false,
2026-06-15T15:10:07.7179273Z           "evidence": []
2026-06-15T15:10:07.7179377Z         },
2026-06-15T15:10:07.7179479Z         "impl": {
2026-06-15T15:10:07.7179602Z           "complete": true,
2026-06-15T15:10:07.7179711Z           "evidence": [
2026-06-15T15:10:07.7179813Z             {
2026-06-15T15:10:07.7179963Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T15:10:07.7180068Z               "line": 114
2026-06-15T15:10:07.7180168Z             },
2026-06-15T15:10:07.7180271Z             {
2026-06-15T15:10:07.7180424Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T15:10:07.7180539Z               "line": 131
2026-06-15T15:10:07.7180642Z             },
2026-06-15T15:10:07.7180743Z             {
2026-06-15T15:10:07.7180886Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T15:10:07.7180990Z               "line": 138
2026-06-15T15:10:07.7181092Z             }
2026-06-15T15:10:07.7181196Z           ]
2026-06-15T15:10:07.7181300Z         },
2026-06-15T15:10:07.7181402Z         "int": {
2026-06-15T15:10:07.7181520Z           "complete": false,
2026-06-15T15:10:07.7181624Z           "evidence": []
2026-06-15T15:10:07.7181730Z         },
2026-06-15T15:10:07.7181934Z         "unit": {
2026-06-15T15:10:07.7182045Z           "complete": true,
2026-06-15T15:10:07.7182159Z           "evidence": [
2026-06-15T15:10:07.7182263Z             {
2026-06-15T15:10:07.7182408Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T15:10:07.7182511Z               "line": 190
2026-06-15T15:10:07.7182617Z             },
2026-06-15T15:10:07.7182718Z             {
2026-06-15T15:10:07.7182868Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T15:10:07.7182983Z               "line": 208
2026-06-15T15:10:07.7183082Z             },
2026-06-15T15:10:07.7183185Z             {
2026-06-15T15:10:07.7183420Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T15:10:07.7183644Z               "line": 221
2026-06-15T15:10:07.7183749Z             }
2026-06-15T15:10:07.7183853Z           ]
2026-06-15T15:10:07.7183959Z         }
2026-06-15T15:10:07.7184063Z       }
2026-06-15T15:10:07.7184162Z     },
2026-06-15T15:10:07.7184264Z     {
2026-06-15T15:10:07.7184387Z       "id": "REQ-EP-3",
2026-06-15T15:10:07.7184603Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-15T15:10:07.7184716Z       "requiredStages": [
2026-06-15T15:10:07.7184831Z         "impl",
2026-06-15T15:10:07.7184932Z         "unit"
2026-06-15T15:10:07.7185035Z       ],
2026-06-15T15:10:07.7185136Z       "stages": {
2026-06-15T15:10:07.7185242Z         "doc": {
2026-06-15T15:10:07.7185346Z           "complete": false,
2026-06-15T15:10:07.7185464Z           "evidence": []
2026-06-15T15:10:07.7185559Z         },
2026-06-15T15:10:07.7185663Z         "impl": {
2026-06-15T15:10:07.7185781Z           "complete": true,
2026-06-15T15:10:07.7185896Z           "evidence": [
2026-06-15T15:10:07.7186001Z             {
2026-06-15T15:10:07.7186153Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T15:10:07.7186268Z               "line": 31
2026-06-15T15:10:07.7186376Z             },
2026-06-15T15:10:07.7186467Z             {
2026-06-15T15:10:07.7186616Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T15:10:07.7186715Z               "line": 49
2026-06-15T15:10:07.7186821Z             }
2026-06-15T15:10:07.7186921Z           ]
2026-06-15T15:10:07.7187025Z         },
2026-06-15T15:10:07.7187131Z         "int": {
2026-06-15T15:10:07.7187240Z           "complete": false,
2026-06-15T15:10:07.7187349Z           "evidence": []
2026-06-15T15:10:07.7187451Z         },
2026-06-15T15:10:07.7187560Z         "unit": {
2026-06-15T15:10:07.7187664Z           "complete": true,
2026-06-15T15:10:07.7187770Z           "evidence": [
2026-06-15T15:10:07.7187884Z             {
2026-06-15T15:10:07.7188027Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T15:10:07.7188148Z               "line": 156
2026-06-15T15:10:07.7188245Z             },
2026-06-15T15:10:07.7188349Z             {
2026-06-15T15:10:07.7188494Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T15:10:07.7188612Z               "line": 164
2026-06-15T15:10:07.7188707Z             },
2026-06-15T15:10:07.7188808Z             {
2026-06-15T15:10:07.7189032Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T15:10:07.7189142Z               "line": 177
2026-06-15T15:10:07.7189242Z             },
2026-06-15T15:10:07.7189337Z             {
2026-06-15T15:10:07.7189480Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T15:10:07.7189585Z               "line": 200
2026-06-15T15:10:07.7189686Z             },
2026-06-15T15:10:07.7189791Z             {
2026-06-15T15:10:07.7189933Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T15:10:07.7190039Z               "line": 216
2026-06-15T15:10:07.7190143Z             },
2026-06-15T15:10:07.7190243Z             {
2026-06-15T15:10:07.7190387Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T15:10:07.7190500Z               "line": 233
2026-06-15T15:10:07.7190604Z             }
2026-06-15T15:10:07.7190700Z           ]
2026-06-15T15:10:07.7190803Z         }
2026-06-15T15:10:07.7191008Z       }
2026-06-15T15:10:07.7191109Z     },
2026-06-15T15:10:07.7191216Z     {
2026-06-15T15:10:07.7191327Z       "id": "REQ-EP-4",
2026-06-15T15:10:07.7191508Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-15T15:10:07.7191618Z       "requiredStages": [
2026-06-15T15:10:07.7191723Z         "impl",
2026-06-15T15:10:07.7191827Z         "unit"
2026-06-15T15:10:07.7191918Z       ],
2026-06-15T15:10:07.7192023Z       "stages": {
2026-06-15T15:10:07.7192128Z         "doc": {
2026-06-15T15:10:07.7192247Z           "complete": false,
2026-06-15T15:10:07.7192352Z           "evidence": []
2026-06-15T15:10:07.7192452Z         },
2026-06-15T15:10:07.7192653Z         "impl": {
2026-06-15T15:10:07.7192767Z           "complete": true,
2026-06-15T15:10:07.7192882Z           "evidence": [
2026-06-15T15:10:07.7192987Z             {
2026-06-15T15:10:07.7193125Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7193226Z               "line": 717
2026-06-15T15:10:07.7193330Z             },
2026-06-15T15:10:07.7193424Z             {
2026-06-15T15:10:07.7193576Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7193684Z               "line": 1048
2026-06-15T15:10:07.7193783Z             },
2026-06-15T15:10:07.7193884Z             {
2026-06-15T15:10:07.7194018Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7194132Z               "line": 1359
2026-06-15T15:10:07.7194233Z             },
2026-06-15T15:10:07.7194333Z             {
2026-06-15T15:10:07.7194470Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T15:10:07.7194581Z               "line": 118
2026-06-15T15:10:07.7194695Z             },
2026-06-15T15:10:07.7194781Z             {
2026-06-15T15:10:07.7194929Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T15:10:07.7195047Z               "line": 609
2026-06-15T15:10:07.7195144Z             },
2026-06-15T15:10:07.7195253Z             {
2026-06-15T15:10:07.7195376Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T15:10:07.7195497Z               "line": 734
2026-06-15T15:10:07.7195596Z             },
2026-06-15T15:10:07.7195691Z             {
2026-06-15T15:10:07.7195850Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.7195953Z               "line": 217
2026-06-15T15:10:07.7196047Z             },
2026-06-15T15:10:07.7196143Z             {
2026-06-15T15:10:07.7196293Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.7196398Z               "line": 400
2026-06-15T15:10:07.7196508Z             },
2026-06-15T15:10:07.7196608Z             {
2026-06-15T15:10:07.7196751Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.7196871Z               "line": 1017
2026-06-15T15:10:07.7196970Z             }
2026-06-15T15:10:07.7197071Z           ]
2026-06-15T15:10:07.7197171Z         },
2026-06-15T15:10:07.7197275Z         "int": {
2026-06-15T15:10:07.7197381Z           "complete": false,
2026-06-15T15:10:07.7197490Z           "evidence": []
2026-06-15T15:10:07.7197590Z         },
2026-06-15T15:10:07.7197686Z         "unit": {
2026-06-15T15:10:07.7197800Z           "complete": true,
2026-06-15T15:10:07.7197895Z           "evidence": [
2026-06-15T15:10:07.7198001Z             {
2026-06-15T15:10:07.7198143Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T15:10:07.7198253Z               "line": 825
2026-06-15T15:10:07.7198359Z             },
2026-06-15T15:10:07.7198458Z             {
2026-06-15T15:10:07.7198616Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T15:10:07.7198717Z               "line": 76
2026-06-15T15:10:07.7198819Z             },
2026-06-15T15:10:07.7198919Z             {
2026-06-15T15:10:07.7199125Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T15:10:07.7199243Z               "line": 147
2026-06-15T15:10:07.7199340Z             }
2026-06-15T15:10:07.7199445Z           ]
2026-06-15T15:10:07.7199544Z         }
2026-06-15T15:10:07.7199745Z       }
2026-06-15T15:10:07.7199849Z     },
2026-06-15T15:10:07.7199955Z     {
2026-06-15T15:10:07.7200069Z       "id": "REQ-EP-5",
2026-06-15T15:10:07.7200760Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-15T15:10:07.7200885Z       "requiredStages": [
2026-06-15T15:10:07.7200989Z         "impl",
2026-06-15T15:10:07.7201098Z         "unit",
2026-06-15T15:10:07.7201198Z         "int"
2026-06-15T15:10:07.7201298Z       ],
2026-06-15T15:10:07.7201505Z       "stages": {
2026-06-15T15:10:07.7201606Z         "doc": {
2026-06-15T15:10:07.7201715Z           "complete": false,
2026-06-15T15:10:07.7201825Z           "evidence": []
2026-06-15T15:10:07.7201931Z         },
2026-06-15T15:10:07.7202035Z         "impl": {
2026-06-15T15:10:07.7202144Z           "complete": true,
2026-06-15T15:10:07.7202255Z           "evidence": [
2026-06-15T15:10:07.7202354Z             {
2026-06-15T15:10:07.7202513Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7202627Z               "line": 367
2026-06-15T15:10:07.7202731Z             },
2026-06-15T15:10:07.7202832Z             {
2026-06-15T15:10:07.7202979Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T15:10:07.7203093Z               "line": 18
2026-06-15T15:10:07.7203194Z             },
2026-06-15T15:10:07.7203303Z             {
2026-06-15T15:10:07.7203442Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T15:10:07.7203542Z               "line": 63
2026-06-15T15:10:07.7203641Z             },
2026-06-15T15:10:07.7203781Z             {
2026-06-15T15:10:07.7203927Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T15:10:07.7204026Z               "line": 92
2026-06-15T15:10:07.7204123Z             },
2026-06-15T15:10:07.7204226Z             {
2026-06-15T15:10:07.7204372Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T15:10:07.7204493Z               "line": 167
2026-06-15T15:10:07.7204597Z             },
2026-06-15T15:10:07.7204697Z             {
2026-06-15T15:10:07.7204845Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T15:10:07.7204954Z               "line": 179
2026-06-15T15:10:07.7205055Z             },
2026-06-15T15:10:07.7205155Z             {
2026-06-15T15:10:07.7205302Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7205404Z               "line": 114
2026-06-15T15:10:07.7205517Z             },
2026-06-15T15:10:07.7205621Z             {
2026-06-15T15:10:07.7205775Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.7205879Z               "line": 22
2026-06-15T15:10:07.7205985Z             },
2026-06-15T15:10:07.7206090Z             {
2026-06-15T15:10:07.7206233Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.7206343Z               "line": 145
2026-06-15T15:10:07.7206457Z             },
2026-06-15T15:10:07.7206546Z             {
2026-06-15T15:10:07.7206694Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.7206797Z               "line": 174
2026-06-15T15:10:07.7206901Z             },
2026-06-15T15:10:07.7207002Z             {
2026-06-15T15:10:07.7207150Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.7207268Z               "line": 196
2026-06-15T15:10:07.7207370Z             },
2026-06-15T15:10:07.7207469Z             {
2026-06-15T15:10:07.7207607Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.7207717Z               "line": 221
2026-06-15T15:10:07.7207817Z             },
2026-06-15T15:10:07.7207917Z             {
2026-06-15T15:10:07.7208069Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.7208179Z               "line": 247
2026-06-15T15:10:07.7208285Z             },
2026-06-15T15:10:07.7208384Z             {
2026-06-15T15:10:07.7208648Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.7208746Z               "line": 270
2026-06-15T15:10:07.7208852Z             },
2026-06-15T15:10:07.7209009Z             {
2026-06-15T15:10:07.7209147Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.7209268Z               "line": 100
2026-06-15T15:10:07.7209371Z             },
2026-06-15T15:10:07.7209475Z             {
2026-06-15T15:10:07.7209605Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7209718Z               "line": 5219
2026-06-15T15:10:07.7209823Z             },
2026-06-15T15:10:07.7209924Z             {
2026-06-15T15:10:07.7210157Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7210272Z               "line": 5353
2026-06-15T15:10:07.7210376Z             },
2026-06-15T15:10:07.7210477Z             {
2026-06-15T15:10:07.7210600Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7210709Z               "line": 5519
2026-06-15T15:10:07.7210825Z             },
2026-06-15T15:10:07.7210929Z             {
2026-06-15T15:10:07.7211053Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7211159Z               "line": 5914
2026-06-15T15:10:07.7211258Z             }
2026-06-15T15:10:07.7211363Z           ]
2026-06-15T15:10:07.7211469Z         },
2026-06-15T15:10:07.7211573Z         "int": {
2026-06-15T15:10:07.7211696Z           "complete": true,
2026-06-15T15:10:07.7211801Z           "evidence": [
2026-06-15T15:10:07.7211909Z             {
2026-06-15T15:10:07.7212055Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T15:10:07.7212176Z               "line": 16
2026-06-15T15:10:07.7212285Z             },
2026-06-15T15:10:07.7212385Z             {
2026-06-15T15:10:07.7212533Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T15:10:07.7212647Z               "line": 15
2026-06-15T15:10:07.7212753Z             }
2026-06-15T15:10:07.7212853Z           ]
2026-06-15T15:10:07.7212962Z         },
2026-06-15T15:10:07.7213068Z         "unit": {
2026-06-15T15:10:07.7213187Z           "complete": true,
2026-06-15T15:10:07.7213300Z           "evidence": [
2026-06-15T15:10:07.7213392Z             {
2026-06-15T15:10:07.7213539Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T15:10:07.7213644Z               "line": 246
2026-06-15T15:10:07.7213764Z             },
2026-06-15T15:10:07.7213873Z             {
2026-06-15T15:10:07.7214017Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T15:10:07.7214126Z               "line": 306
2026-06-15T15:10:07.7214226Z             },
2026-06-15T15:10:07.7214327Z             {
2026-06-15T15:10:07.7214483Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T15:10:07.7214591Z               "line": 363
2026-06-15T15:10:07.7214697Z             },
2026-06-15T15:10:07.7214804Z             {
2026-06-15T15:10:07.7214957Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.7215062Z               "line": 286
2026-06-15T15:10:07.7215167Z             },
2026-06-15T15:10:07.7215271Z             {
2026-06-15T15:10:07.7215415Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.7215529Z               "line": 338
2026-06-15T15:10:07.7215625Z             },
2026-06-15T15:10:07.7215730Z             {
2026-06-15T15:10:07.7215871Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.7215992Z               "line": 659
2026-06-15T15:10:07.7216096Z             },
2026-06-15T15:10:07.7216196Z             {
2026-06-15T15:10:07.7216321Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7216434Z               "line": 7191
2026-06-15T15:10:07.7216545Z             },
2026-06-15T15:10:07.7216641Z             {
2026-06-15T15:10:07.7216768Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7216884Z               "line": 7318
2026-06-15T15:10:07.7216984Z             },
2026-06-15T15:10:07.7217087Z             {
2026-06-15T15:10:07.7217325Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7217442Z               "line": 7907
2026-06-15T15:10:07.7217543Z             },
2026-06-15T15:10:07.7217643Z             {
2026-06-15T15:10:07.7217775Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7217877Z               "line": 8023
2026-06-15T15:10:07.7217972Z             }
2026-06-15T15:10:07.7218076Z           ]
2026-06-15T15:10:07.7218182Z         }
2026-06-15T15:10:07.7218282Z       }
2026-06-15T15:10:07.7218391Z     },
2026-06-15T15:10:07.7218492Z     {
2026-06-15T15:10:07.7218597Z       "id": "REQ-EP-6",
2026-06-15T15:10:07.7220330Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-15T15:10:07.7220570Z       "requiredStages": [
2026-06-15T15:10:07.7220683Z         "doc",
2026-06-15T15:10:07.7220785Z         "impl",
2026-06-15T15:10:07.7220880Z         "unit"
2026-06-15T15:10:07.7220984Z       ],
2026-06-15T15:10:07.7221085Z       "stages": {
2026-06-15T15:10:07.7221198Z         "doc": {
2026-06-15T15:10:07.7221313Z           "complete": true,
2026-06-15T15:10:07.7221419Z           "evidence": [
2026-06-15T15:10:07.7221523Z             {
2026-06-15T15:10:07.7221642Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.7221758Z               "line": 208
2026-06-15T15:10:07.7221861Z             }
2026-06-15T15:10:07.7221967Z           ]
2026-06-15T15:10:07.7222063Z         },
2026-06-15T15:10:07.7222175Z         "impl": {
2026-06-15T15:10:07.7222294Z           "complete": true,
2026-06-15T15:10:07.7222399Z           "evidence": [
2026-06-15T15:10:07.7222506Z             {
2026-06-15T15:10:07.7222655Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.7222770Z               "line": 166
2026-06-15T15:10:07.7222869Z             }
2026-06-15T15:10:07.7222979Z           ]
2026-06-15T15:10:07.7223084Z         },
2026-06-15T15:10:07.7223188Z         "int": {
2026-06-15T15:10:07.7223308Z           "complete": true,
2026-06-15T15:10:07.7223418Z           "evidence": [
2026-06-15T15:10:07.7223517Z             {
2026-06-15T15:10:07.7223685Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T15:10:07.7223803Z               "line": 18
2026-06-15T15:10:07.7223903Z             }
2026-06-15T15:10:07.7224014Z           ]
2026-06-15T15:10:07.7224109Z         },
2026-06-15T15:10:07.7224209Z         "unit": {
2026-06-15T15:10:07.7224329Z           "complete": true,
2026-06-15T15:10:07.7224433Z           "evidence": [
2026-06-15T15:10:07.7224538Z             {
2026-06-15T15:10:07.7224700Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.7224810Z               "line": 534
2026-06-15T15:10:07.7224911Z             },
2026-06-15T15:10:07.7225015Z             {
2026-06-15T15:10:07.7225161Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.7225267Z               "line": 627
2026-06-15T15:10:07.7225378Z             }
2026-06-15T15:10:07.7225478Z           ]
2026-06-15T15:10:07.7225584Z         }
2026-06-15T15:10:07.7225679Z       }
2026-06-15T15:10:07.7225779Z     },
2026-06-15T15:10:07.7225875Z     {
2026-06-15T15:10:07.7225985Z       "id": "REQ-EP-7",
2026-06-15T15:10:07.7227742Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-15T15:10:07.7227979Z       "requiredStages": [
2026-06-15T15:10:07.7228083Z         "doc",
2026-06-15T15:10:07.7228194Z         "impl",
2026-06-15T15:10:07.7228303Z         "unit"
2026-06-15T15:10:07.7228403Z       ],
2026-06-15T15:10:07.7228509Z       "stages": {
2026-06-15T15:10:07.7228608Z         "doc": {
2026-06-15T15:10:07.7228732Z           "complete": true,
2026-06-15T15:10:07.7228833Z           "evidence": [
2026-06-15T15:10:07.7228932Z             {
2026-06-15T15:10:07.7229152Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.7229362Z               "line": 434
2026-06-15T15:10:07.7229467Z             }
2026-06-15T15:10:07.7229567Z           ]
2026-06-15T15:10:07.7229672Z         },
2026-06-15T15:10:07.7229768Z         "impl": {
2026-06-15T15:10:07.7229876Z           "complete": true,
2026-06-15T15:10:07.7229977Z           "evidence": [
2026-06-15T15:10:07.7230087Z             {
2026-06-15T15:10:07.7230234Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.7230340Z               "line": 505
2026-06-15T15:10:07.7230444Z             },
2026-06-15T15:10:07.7230543Z             {
2026-06-15T15:10:07.7230691Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T15:10:07.7230797Z               "line": 87
2026-06-15T15:10:07.7230900Z             },
2026-06-15T15:10:07.7231001Z             {
2026-06-15T15:10:07.7231158Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7231268Z               "line": 81
2026-06-15T15:10:07.7231374Z             },
2026-06-15T15:10:07.7231487Z             {
2026-06-15T15:10:07.7231650Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7231754Z               "line": 166
2026-06-15T15:10:07.7231858Z             },
2026-06-15T15:10:07.7231955Z             {
2026-06-15T15:10:07.7232097Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7232202Z               "line": 1446
2026-06-15T15:10:07.7232308Z             }
2026-06-15T15:10:07.7232416Z           ]
2026-06-15T15:10:07.7232517Z         },
2026-06-15T15:10:07.7232628Z         "int": {
2026-06-15T15:10:07.7232745Z           "complete": false,
2026-06-15T15:10:07.7232863Z           "evidence": []
2026-06-15T15:10:07.7232969Z         },
2026-06-15T15:10:07.7233081Z         "unit": {
2026-06-15T15:10:07.7233200Z           "complete": true,
2026-06-15T15:10:07.7233310Z           "evidence": [
2026-06-15T15:10:07.7233419Z             {
2026-06-15T15:10:07.7233563Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.7233687Z               "line": 623
2026-06-15T15:10:07.7233786Z             },
2026-06-15T15:10:07.7233897Z             {
2026-06-15T15:10:07.7234044Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T15:10:07.7234144Z               "line": 212
2026-06-15T15:10:07.7234246Z             },
2026-06-15T15:10:07.7234350Z             {
2026-06-15T15:10:07.7234498Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T15:10:07.7234598Z               "line": 307
2026-06-15T15:10:07.7234697Z             },
2026-06-15T15:10:07.7234803Z             {
2026-06-15T15:10:07.7234936Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7235045Z               "line": 6328
2026-06-15T15:10:07.7235147Z             },
2026-06-15T15:10:07.7235256Z             {
2026-06-15T15:10:07.7235379Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7235500Z               "line": 6355
2026-06-15T15:10:07.7235608Z             }
2026-06-15T15:10:07.7235712Z           ]
2026-06-15T15:10:07.7235831Z         }
2026-06-15T15:10:07.7235929Z       }
2026-06-15T15:10:07.7236038Z     },
2026-06-15T15:10:07.7236139Z     {
2026-06-15T15:10:07.7236254Z       "id": "REQ-FRONT-1",
2026-06-15T15:10:07.7236460Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-15T15:10:07.7236583Z       "requiredStages": [],
2026-06-15T15:10:07.7236803Z       "stages": {
2026-06-15T15:10:07.7236902Z         "doc": {
2026-06-15T15:10:07.7237021Z           "complete": false,
2026-06-15T15:10:07.7237127Z           "evidence": []
2026-06-15T15:10:07.7237236Z         },
2026-06-15T15:10:07.7237345Z         "impl": {
2026-06-15T15:10:07.7237456Z           "complete": false,
2026-06-15T15:10:07.7237569Z           "evidence": []
2026-06-15T15:10:07.7237675Z         },
2026-06-15T15:10:07.7237780Z         "int": {
2026-06-15T15:10:07.7237893Z           "complete": false,
2026-06-15T15:10:07.7238005Z           "evidence": []
2026-06-15T15:10:07.7238114Z         },
2026-06-15T15:10:07.7238217Z         "unit": {
2026-06-15T15:10:07.7238426Z           "complete": false,
2026-06-15T15:10:07.7238529Z           "evidence": []
2026-06-15T15:10:07.7238629Z         }
2026-06-15T15:10:07.7238730Z       }
2026-06-15T15:10:07.7238834Z     },
2026-06-15T15:10:07.7239017Z     {
2026-06-15T15:10:07.7239149Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-15T15:10:07.7241709Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-15T15:10:07.7241847Z       "requiredStages": [
2026-06-15T15:10:07.7241943Z         "doc",
2026-06-15T15:10:07.7242047Z         "impl",
2026-06-15T15:10:07.7242162Z         "unit",
2026-06-15T15:10:07.7242267Z         "int"
2026-06-15T15:10:07.7242372Z       ],
2026-06-15T15:10:07.7242472Z       "stages": {
2026-06-15T15:10:07.7242577Z         "doc": {
2026-06-15T15:10:07.7242691Z           "complete": true,
2026-06-15T15:10:07.7242796Z           "evidence": [
2026-06-15T15:10:07.7242897Z             {
2026-06-15T15:10:07.7243025Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7243145Z               "line": 326
2026-06-15T15:10:07.7243245Z             }
2026-06-15T15:10:07.7243353Z           ]
2026-06-15T15:10:07.7243448Z         },
2026-06-15T15:10:07.7243557Z         "impl": {
2026-06-15T15:10:07.7243684Z           "complete": true,
2026-06-15T15:10:07.7243799Z           "evidence": [
2026-06-15T15:10:07.7243895Z             {
2026-06-15T15:10:07.7244041Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7244162Z               "line": 494
2026-06-15T15:10:07.7244266Z             },
2026-06-15T15:10:07.7244370Z             {
2026-06-15T15:10:07.7244519Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7244628Z               "line": 499
2026-06-15T15:10:07.7244724Z             },
2026-06-15T15:10:07.7244829Z             {
2026-06-15T15:10:07.7244976Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7245082Z               "line": 874
2026-06-15T15:10:07.7245186Z             },
2026-06-15T15:10:07.7245295Z             {
2026-06-15T15:10:07.7245440Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7245558Z               "line": 915
2026-06-15T15:10:07.7245663Z             },
2026-06-15T15:10:07.7245783Z             {
2026-06-15T15:10:07.7245930Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7246050Z               "line": 926
2026-06-15T15:10:07.7246163Z             },
2026-06-15T15:10:07.7246263Z             {
2026-06-15T15:10:07.7246415Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.7246637Z               "line": 358
2026-06-15T15:10:07.7246738Z             }
2026-06-15T15:10:07.7246837Z           ]
2026-06-15T15:10:07.7246937Z         },
2026-06-15T15:10:07.7247043Z         "int": {
2026-06-15T15:10:07.7247162Z           "complete": true,
2026-06-15T15:10:07.7247266Z           "evidence": [
2026-06-15T15:10:07.7250526Z             {
2026-06-15T15:10:07.7250749Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-15T15:10:07.7250874Z               "line": 30
2026-06-15T15:10:07.7250977Z             }
2026-06-15T15:10:07.7251078Z           ]
2026-06-15T15:10:07.7251184Z         },
2026-06-15T15:10:07.7251441Z         "unit": {
2026-06-15T15:10:07.7251555Z           "complete": true,
2026-06-15T15:10:07.7251678Z           "evidence": [
2026-06-15T15:10:07.7251777Z             {
2026-06-15T15:10:07.7251954Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7252068Z               "line": 1467
2026-06-15T15:10:07.7252174Z             },
2026-06-15T15:10:07.7252278Z             {
2026-06-15T15:10:07.7252442Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7252546Z               "line": 1492
2026-06-15T15:10:07.7252645Z             },
2026-06-15T15:10:07.7252746Z             {
2026-06-15T15:10:07.7252898Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7253003Z               "line": 1509
2026-06-15T15:10:07.7253104Z             },
2026-06-15T15:10:07.7253204Z             {
2026-06-15T15:10:07.7253347Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7253457Z               "line": 1552
2026-06-15T15:10:07.7253556Z             }
2026-06-15T15:10:07.7253657Z           ]
2026-06-15T15:10:07.7253758Z         }
2026-06-15T15:10:07.7253861Z       }
2026-06-15T15:10:07.7253961Z     },
2026-06-15T15:10:07.7254065Z     {
2026-06-15T15:10:07.7254211Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-15T15:10:07.7256951Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-15T15:10:07.7257092Z       "requiredStages": [
2026-06-15T15:10:07.7257197Z         "doc",
2026-06-15T15:10:07.7257308Z         "impl",
2026-06-15T15:10:07.7257412Z         "unit",
2026-06-15T15:10:07.7257521Z         "int"
2026-06-15T15:10:07.7257623Z       ],
2026-06-15T15:10:07.7257722Z       "stages": {
2026-06-15T15:10:07.7257826Z         "doc": {
2026-06-15T15:10:07.7257951Z           "complete": true,
2026-06-15T15:10:07.7258056Z           "evidence": [
2026-06-15T15:10:07.7258156Z             {
2026-06-15T15:10:07.7258299Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7258403Z               "line": 295
2026-06-15T15:10:07.7258505Z             }
2026-06-15T15:10:07.7258604Z           ]
2026-06-15T15:10:07.7258713Z         },
2026-06-15T15:10:07.7258815Z         "impl": {
2026-06-15T15:10:07.7258933Z           "complete": true,
2026-06-15T15:10:07.7259163Z           "evidence": [
2026-06-15T15:10:07.7259262Z             {
2026-06-15T15:10:07.7259422Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.7259533Z               "line": 108
2026-06-15T15:10:07.7259635Z             },
2026-06-15T15:10:07.7259739Z             {
2026-06-15T15:10:07.7260002Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7260122Z               "line": 794
2026-06-15T15:10:07.7260222Z             },
2026-06-15T15:10:07.7260326Z             {
2026-06-15T15:10:07.7260466Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7260575Z               "line": 994
2026-06-15T15:10:07.7260670Z             },
2026-06-15T15:10:07.7260766Z             {
2026-06-15T15:10:07.7260923Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7261022Z               "line": 23
2026-06-15T15:10:07.7261124Z             },
2026-06-15T15:10:07.7261224Z             {
2026-06-15T15:10:07.7261472Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7261576Z               "line": 113
2026-06-15T15:10:07.7261682Z             },
2026-06-15T15:10:07.7261787Z             {
2026-06-15T15:10:07.7261919Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7262035Z               "line": 158
2026-06-15T15:10:07.7262125Z             },
2026-06-15T15:10:07.7262233Z             {
2026-06-15T15:10:07.7262376Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7262481Z               "line": 218
2026-06-15T15:10:07.7262585Z             },
2026-06-15T15:10:07.7262686Z             {
2026-06-15T15:10:07.7262834Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7262938Z               "line": 261
2026-06-15T15:10:07.7263035Z             },
2026-06-15T15:10:07.7263139Z             {
2026-06-15T15:10:07.7263273Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7263392Z               "line": 275
2026-06-15T15:10:07.7263492Z             },
2026-06-15T15:10:07.7263597Z             {
2026-06-15T15:10:07.7263740Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7263840Z               "line": 320
2026-06-15T15:10:07.7263946Z             },
2026-06-15T15:10:07.7264055Z             {
2026-06-15T15:10:07.7264202Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7264313Z               "line": 347
2026-06-15T15:10:07.7264416Z             },
2026-06-15T15:10:07.7264516Z             {
2026-06-15T15:10:07.7264654Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7264757Z               "line": 359
2026-06-15T15:10:07.7264847Z             },
2026-06-15T15:10:07.7264952Z             {
2026-06-15T15:10:07.7265096Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7265209Z               "line": 373
2026-06-15T15:10:07.7265311Z             },
2026-06-15T15:10:07.7265471Z             {
2026-06-15T15:10:07.7265621Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7265724Z               "line": 400
2026-06-15T15:10:07.7265844Z             },
2026-06-15T15:10:07.7265944Z             {
2026-06-15T15:10:07.7266101Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7266203Z               "line": 643
2026-06-15T15:10:07.7266311Z             },
2026-06-15T15:10:07.7266411Z             {
2026-06-15T15:10:07.7266565Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7266678Z               "line": 972
2026-06-15T15:10:07.7266779Z             },
2026-06-15T15:10:07.7266884Z             {
2026-06-15T15:10:07.7267027Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7267137Z               "line": 178
2026-06-15T15:10:07.7267246Z             },
2026-06-15T15:10:07.7267345Z             {
2026-06-15T15:10:07.7267498Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7267605Z               "line": 590
2026-06-15T15:10:07.7267700Z             },
2026-06-15T15:10:07.7267801Z             {
2026-06-15T15:10:07.7267948Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7268063Z               "line": 662
2026-06-15T15:10:07.7268154Z             },
2026-06-15T15:10:07.7268324Z             {
2026-06-15T15:10:07.7268469Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7268588Z               "line": 674
2026-06-15T15:10:07.7268692Z             },
2026-06-15T15:10:07.7268798Z             {
2026-06-15T15:10:07.7269026Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7269136Z               "line": 1084
2026-06-15T15:10:07.7269245Z             },
2026-06-15T15:10:07.7269346Z             {
2026-06-15T15:10:07.7269512Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7269607Z               "line": 181
2026-06-15T15:10:07.7269709Z             },
2026-06-15T15:10:07.7270881Z             {
2026-06-15T15:10:07.7271031Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7271145Z               "line": 223
2026-06-15T15:10:07.7271249Z             },
2026-06-15T15:10:07.7271350Z             {
2026-06-15T15:10:07.7271497Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7271602Z               "line": 234
2026-06-15T15:10:07.7271712Z             },
2026-06-15T15:10:07.7271807Z             {
2026-06-15T15:10:07.7271951Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7272064Z               "line": 260
2026-06-15T15:10:07.7272164Z             },
2026-06-15T15:10:07.7272266Z             {
2026-06-15T15:10:07.7272412Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7272518Z               "line": 56
2026-06-15T15:10:07.7272619Z             },
2026-06-15T15:10:07.7272722Z             {
2026-06-15T15:10:07.7272869Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7272989Z               "line": 188
2026-06-15T15:10:07.7273089Z             },
2026-06-15T15:10:07.7273188Z             {
2026-06-15T15:10:07.7273337Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T15:10:07.7273446Z               "line": 63
2026-06-15T15:10:07.7273552Z             },
2026-06-15T15:10:07.7273656Z             {
2026-06-15T15:10:07.7273799Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7273910Z               "line": 258
2026-06-15T15:10:07.7274014Z             },
2026-06-15T15:10:07.7274119Z             {
2026-06-15T15:10:07.7274258Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.7274367Z               "line": 424
2026-06-15T15:10:07.7274462Z             },
2026-06-15T15:10:07.7274568Z             {
2026-06-15T15:10:07.7274700Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7274811Z               "line": 1751
2026-06-15T15:10:07.7274911Z             }
2026-06-15T15:10:07.7275014Z           ]
2026-06-15T15:10:07.7275119Z         },
2026-06-15T15:10:07.7275223Z         "int": {
2026-06-15T15:10:07.7275346Z           "complete": true,
2026-06-15T15:10:07.7275446Z           "evidence": [
2026-06-15T15:10:07.7275547Z             {
2026-06-15T15:10:07.7275698Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T15:10:07.7275808Z               "line": 57
2026-06-15T15:10:07.7275909Z             },
2026-06-15T15:10:07.7276008Z             {
2026-06-15T15:10:07.7276147Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T15:10:07.7276261Z               "line": 41
2026-06-15T15:10:07.7276360Z             }
2026-06-15T15:10:07.7276467Z           ]
2026-06-15T15:10:07.7276567Z         },
2026-06-15T15:10:07.7276671Z         "unit": {
2026-06-15T15:10:07.7276777Z           "complete": true,
2026-06-15T15:10:07.7276881Z           "evidence": [
2026-06-15T15:10:07.7276986Z             {
2026-06-15T15:10:07.7277139Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.7277258Z               "line": 532
2026-06-15T15:10:07.7277363Z             },
2026-06-15T15:10:07.7277463Z             {
2026-06-15T15:10:07.7277611Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.7277727Z               "line": 755
2026-06-15T15:10:07.7277952Z             },
2026-06-15T15:10:07.7278053Z             {
2026-06-15T15:10:07.7278194Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7278298Z               "line": 1041
2026-06-15T15:10:07.7278404Z             },
2026-06-15T15:10:07.7278504Z             {
2026-06-15T15:10:07.7278646Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7278757Z               "line": 1075
2026-06-15T15:10:07.7278861Z             },
2026-06-15T15:10:07.7279024Z             {
2026-06-15T15:10:07.7279162Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7279272Z               "line": 1117
2026-06-15T15:10:07.7279472Z             },
2026-06-15T15:10:07.7279576Z             {
2026-06-15T15:10:07.7279725Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7279834Z               "line": 1189
2026-06-15T15:10:07.7279935Z             },
2026-06-15T15:10:07.7280026Z             {
2026-06-15T15:10:07.7280177Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7280279Z               "line": 1202
2026-06-15T15:10:07.7280378Z             },
2026-06-15T15:10:07.7280486Z             {
2026-06-15T15:10:07.7280624Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7280732Z               "line": 1225
2026-06-15T15:10:07.7280831Z             },
2026-06-15T15:10:07.7280927Z             {
2026-06-15T15:10:07.7281075Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7281175Z               "line": 1251
2026-06-15T15:10:07.7281281Z             },
2026-06-15T15:10:07.7281381Z             {
2026-06-15T15:10:07.7281528Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7281624Z               "line": 1265
2026-06-15T15:10:07.7281729Z             },
2026-06-15T15:10:07.7281828Z             {
2026-06-15T15:10:07.7281972Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7282076Z               "line": 1289
2026-06-15T15:10:07.7282182Z             },
2026-06-15T15:10:07.7282282Z             {
2026-06-15T15:10:07.7282424Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7282540Z               "line": 1421
2026-06-15T15:10:07.7282648Z             },
2026-06-15T15:10:07.7282744Z             {
2026-06-15T15:10:07.7282884Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7282986Z               "line": 1597
2026-06-15T15:10:07.7283088Z             },
2026-06-15T15:10:07.7283189Z             {
2026-06-15T15:10:07.7283334Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7283453Z               "line": 1652
2026-06-15T15:10:07.7283554Z             },
2026-06-15T15:10:07.7283658Z             {
2026-06-15T15:10:07.7283811Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7283912Z               "line": 1698
2026-06-15T15:10:07.7284011Z             },
2026-06-15T15:10:07.7284112Z             {
2026-06-15T15:10:07.7284255Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7284354Z               "line": 1743
2026-06-15T15:10:07.7284460Z             },
2026-06-15T15:10:07.7284559Z             {
2026-06-15T15:10:07.7284707Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7284818Z               "line": 1787
2026-06-15T15:10:07.7284918Z             },
2026-06-15T15:10:07.7285017Z             {
2026-06-15T15:10:07.7285166Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7285274Z               "line": 1829
2026-06-15T15:10:07.7285371Z             },
2026-06-15T15:10:07.7285476Z             {
2026-06-15T15:10:07.7285622Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7285727Z               "line": 1418
2026-06-15T15:10:07.7285826Z             },
2026-06-15T15:10:07.7285925Z             {
2026-06-15T15:10:07.7286073Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7286282Z               "line": 217
2026-06-15T15:10:07.7286388Z             },
2026-06-15T15:10:07.7286493Z             {
2026-06-15T15:10:07.7286635Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7286750Z               "line": 233
2026-06-15T15:10:07.7286854Z             },
2026-06-15T15:10:07.7286955Z             {
2026-06-15T15:10:07.7287093Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7287207Z               "line": 254
2026-06-15T15:10:07.7287308Z             },
2026-06-15T15:10:07.7287403Z             {
2026-06-15T15:10:07.7287546Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7287727Z               "line": 265
2026-06-15T15:10:07.7287832Z             },
2026-06-15T15:10:07.7287938Z             {
2026-06-15T15:10:07.7288084Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7288195Z               "line": 278
2026-06-15T15:10:07.7288291Z             },
2026-06-15T15:10:07.7288399Z             {
2026-06-15T15:10:07.7288531Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7288637Z               "line": 289
2026-06-15T15:10:07.7288739Z             },
2026-06-15T15:10:07.7288844Z             {
2026-06-15T15:10:07.7289050Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7289144Z               "line": 301
2026-06-15T15:10:07.7289251Z             },
2026-06-15T15:10:07.7289350Z             {
2026-06-15T15:10:07.7289512Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7289608Z               "line": 312
2026-06-15T15:10:07.7289712Z             },
2026-06-15T15:10:07.7289827Z             {
2026-06-15T15:10:07.7289970Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7290084Z               "line": 323
2026-06-15T15:10:07.7290185Z             },
2026-06-15T15:10:07.7290289Z             {
2026-06-15T15:10:07.7290437Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7290543Z               "line": 332
2026-06-15T15:10:07.7290646Z             },
2026-06-15T15:10:07.7290742Z             {
2026-06-15T15:10:07.7290891Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7290990Z               "line": 342
2026-06-15T15:10:07.7291089Z             },
2026-06-15T15:10:07.7291198Z             {
2026-06-15T15:10:07.7291340Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T15:10:07.7291449Z               "line": 358
2026-06-15T15:10:07.7291555Z             },
2026-06-15T15:10:07.7291659Z             {
2026-06-15T15:10:07.7291803Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7291922Z               "line": 708
2026-06-15T15:10:07.7292025Z             },
2026-06-15T15:10:07.7292123Z             {
2026-06-15T15:10:07.7292275Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7292379Z               "line": 744
2026-06-15T15:10:07.7292485Z             },
2026-06-15T15:10:07.7292584Z             {
2026-06-15T15:10:07.7292732Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.7292847Z               "line": 966
2026-06-15T15:10:07.7292951Z             },
2026-06-15T15:10:07.7293052Z             {
2026-06-15T15:10:07.7293195Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T15:10:07.7293323Z               "line": 143
2026-06-15T15:10:07.7293476Z             },
2026-06-15T15:10:07.7293605Z             {
2026-06-15T15:10:07.7293758Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T15:10:07.7293861Z               "line": 222
2026-06-15T15:10:07.7293984Z             },
2026-06-15T15:10:07.7294076Z             {
2026-06-15T15:10:07.7294232Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T15:10:07.7294338Z               "line": 291
2026-06-15T15:10:07.7294448Z             },
2026-06-15T15:10:07.7294547Z             {
2026-06-15T15:10:07.7294691Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T15:10:07.7294924Z               "line": 17
2026-06-15T15:10:07.7295016Z             },
2026-06-15T15:10:07.7295115Z             {
2026-06-15T15:10:07.7295263Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T15:10:07.7295369Z               "line": 104
2026-06-15T15:10:07.7295468Z             }
2026-06-15T15:10:07.7295573Z           ]
2026-06-15T15:10:07.7295679Z         }
2026-06-15T15:10:07.7295777Z       }
2026-06-15T15:10:07.7295878Z     },
2026-06-15T15:10:07.7295979Z     {
2026-06-15T15:10:07.7296130Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-15T15:10:07.7296340Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-15T15:10:07.7296566Z       "requiredStages": [
2026-06-15T15:10:07.7296681Z         "impl",
2026-06-15T15:10:07.7296785Z         "unit"
2026-06-15T15:10:07.7296890Z       ],
2026-06-15T15:10:07.7296996Z       "stages": {
2026-06-15T15:10:07.7297099Z         "doc": {
2026-06-15T15:10:07.7297224Z           "complete": false,
2026-06-15T15:10:07.7297339Z           "evidence": []
2026-06-15T15:10:07.7297443Z         },
2026-06-15T15:10:07.7297544Z         "impl": {
2026-06-15T15:10:07.7297663Z           "complete": true,
2026-06-15T15:10:07.7297767Z           "evidence": [
2026-06-15T15:10:07.7297873Z             {
2026-06-15T15:10:07.7298026Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.7298125Z               "line": 168
2026-06-15T15:10:07.7298227Z             },
2026-06-15T15:10:07.7298325Z             {
2026-06-15T15:10:07.7298464Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.7298570Z               "line": 18
2026-06-15T15:10:07.7298673Z             },
2026-06-15T15:10:07.7298774Z             {
2026-06-15T15:10:07.7298917Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.7299116Z               "line": 100
2026-06-15T15:10:07.7299216Z             }
2026-06-15T15:10:07.7299319Z           ]
2026-06-15T15:10:07.7299428Z         },
2026-06-15T15:10:07.7299524Z         "int": {
2026-06-15T15:10:07.7299633Z           "complete": false,
2026-06-15T15:10:07.7299733Z           "evidence": []
2026-06-15T15:10:07.7299834Z         },
2026-06-15T15:10:07.7299943Z         "unit": {
2026-06-15T15:10:07.7300062Z           "complete": true,
2026-06-15T15:10:07.7300177Z           "evidence": [
2026-06-15T15:10:07.7300282Z             {
2026-06-15T15:10:07.7300425Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.7300534Z               "line": 733
2026-06-15T15:10:07.7300639Z             },
2026-06-15T15:10:07.7300735Z             {
2026-06-15T15:10:07.7300892Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.7300992Z               "line": 161
2026-06-15T15:10:07.7301094Z             },
2026-06-15T15:10:07.7301192Z             {
2026-06-15T15:10:07.7301321Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.7301437Z               "line": 233
2026-06-15T15:10:07.7301545Z             }
2026-06-15T15:10:07.7301639Z           ]
2026-06-15T15:10:07.7301745Z         }
2026-06-15T15:10:07.7301843Z       }
2026-06-15T15:10:07.7301942Z     },
2026-06-15T15:10:07.7302043Z     {
2026-06-15T15:10:07.7302191Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-15T15:10:07.7302658Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-15T15:10:07.7302768Z       "requiredStages": [
2026-06-15T15:10:07.7302877Z         "impl",
2026-06-15T15:10:07.7302983Z         "unit"
2026-06-15T15:10:07.7303087Z       ],
2026-06-15T15:10:07.7303201Z       "stages": {
2026-06-15T15:10:07.7303307Z         "doc": {
2026-06-15T15:10:07.7303416Z           "complete": true,
2026-06-15T15:10:07.7303531Z           "evidence": [
2026-06-15T15:10:07.7303627Z             {
2026-06-15T15:10:07.7303773Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7304004Z               "line": 220
2026-06-15T15:10:07.7304107Z             }
2026-06-15T15:10:07.7304208Z           ]
2026-06-15T15:10:07.7304313Z         },
2026-06-15T15:10:07.7304412Z         "impl": {
2026-06-15T15:10:07.7304535Z           "complete": true,
2026-06-15T15:10:07.7304631Z           "evidence": [
2026-06-15T15:10:07.7304741Z             {
2026-06-15T15:10:07.7304888Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.7305013Z               "line": 311
2026-06-15T15:10:07.7305112Z             },
2026-06-15T15:10:07.7305218Z             {
2026-06-15T15:10:07.7305366Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.7305571Z               "line": 257
2026-06-15T15:10:07.7305671Z             },
2026-06-15T15:10:07.7305765Z             {
2026-06-15T15:10:07.7305915Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.7306013Z               "line": 405
2026-06-15T15:10:07.7306113Z             },
2026-06-15T15:10:07.7306234Z             {
2026-06-15T15:10:07.7306371Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T15:10:07.7306486Z               "line": 77
2026-06-15T15:10:07.7306591Z             }
2026-06-15T15:10:07.7306694Z           ]
2026-06-15T15:10:07.7306794Z         },
2026-06-15T15:10:07.7306900Z         "int": {
2026-06-15T15:10:07.7307016Z           "complete": false,
2026-06-15T15:10:07.7307126Z           "evidence": []
2026-06-15T15:10:07.7307231Z         },
2026-06-15T15:10:07.7307331Z         "unit": {
2026-06-15T15:10:07.7307450Z           "complete": true,
2026-06-15T15:10:07.7307560Z           "evidence": [
2026-06-15T15:10:07.7307655Z             {
2026-06-15T15:10:07.7307799Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.7307908Z               "line": 478
2026-06-15T15:10:07.7308008Z             },
2026-06-15T15:10:07.7308114Z             {
2026-06-15T15:10:07.7308257Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.7308366Z               "line": 516
2026-06-15T15:10:07.7308472Z             },
2026-06-15T15:10:07.7308581Z             {
2026-06-15T15:10:07.7308724Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T15:10:07.7308829Z               "line": 166
2026-06-15T15:10:07.7308934Z             }
2026-06-15T15:10:07.7309125Z           ]
2026-06-15T15:10:07.7309228Z         }
2026-06-15T15:10:07.7309334Z       }
2026-06-15T15:10:07.7309431Z     },
2026-06-15T15:10:07.7309538Z     {
2026-06-15T15:10:07.7309695Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-15T15:10:07.7310279Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-15T15:10:07.7310409Z       "requiredStages": [
2026-06-15T15:10:07.7310518Z         "impl",
2026-06-15T15:10:07.7310617Z         "unit"
2026-06-15T15:10:07.7310724Z       ],
2026-06-15T15:10:07.7310833Z       "stages": {
2026-06-15T15:10:07.7310947Z         "doc": {
2026-06-15T15:10:07.7311062Z           "complete": false,
2026-06-15T15:10:07.7311175Z           "evidence": []
2026-06-15T15:10:07.7311281Z         },
2026-06-15T15:10:07.7311391Z         "impl": {
2026-06-15T15:10:07.7311509Z           "complete": true,
2026-06-15T15:10:07.7311611Z           "evidence": [
2026-06-15T15:10:07.7311710Z             {
2026-06-15T15:10:07.7311853Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T15:10:07.7311959Z               "line": 22
2026-06-15T15:10:07.7312058Z             },
2026-06-15T15:10:07.7312162Z             {
2026-06-15T15:10:07.7312315Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.7312417Z               "line": 487
2026-06-15T15:10:07.7312521Z             },
2026-06-15T15:10:07.7312627Z             {
2026-06-15T15:10:07.7312770Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T15:10:07.7312894Z               "line": 17
2026-06-15T15:10:07.7313118Z             },
2026-06-15T15:10:07.7313223Z             {
2026-06-15T15:10:07.7313366Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T15:10:07.7313475Z               "line": 147
2026-06-15T15:10:07.7313577Z             },
2026-06-15T15:10:07.7313681Z             {
2026-06-15T15:10:07.7313857Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7313962Z               "line": 226
2026-06-15T15:10:07.7314062Z             },
2026-06-15T15:10:07.7314158Z             {
2026-06-15T15:10:07.7314319Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7314420Z               "line": 251
2026-06-15T15:10:07.7314620Z             },
2026-06-15T15:10:07.7314725Z             {
2026-06-15T15:10:07.7314879Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7314986Z               "line": 277
2026-06-15T15:10:07.7315086Z             },
2026-06-15T15:10:07.7315196Z             {
2026-06-15T15:10:07.7315348Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T15:10:07.7315458Z               "line": 124
2026-06-15T15:10:07.7315554Z             },
2026-06-15T15:10:07.7315653Z             {
2026-06-15T15:10:07.7315798Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T15:10:07.7315907Z               "line": 224
2026-06-15T15:10:07.7316016Z             }
2026-06-15T15:10:07.7316122Z           ]
2026-06-15T15:10:07.7316222Z         },
2026-06-15T15:10:07.7316326Z         "int": {
2026-06-15T15:10:07.7316442Z           "complete": false,
2026-06-15T15:10:07.7316555Z           "evidence": []
2026-06-15T15:10:07.7316659Z         },
2026-06-15T15:10:07.7316775Z         "unit": {
2026-06-15T15:10:07.7316893Z           "complete": true,
2026-06-15T15:10:07.7317003Z           "evidence": [
2026-06-15T15:10:07.7317114Z             {
2026-06-15T15:10:07.7317264Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T15:10:07.7317369Z               "line": 63
2026-06-15T15:10:07.7317478Z             },
2026-06-15T15:10:07.7317586Z             {
2026-06-15T15:10:07.7317734Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T15:10:07.7317840Z               "line": 73
2026-06-15T15:10:07.7317943Z             },
2026-06-15T15:10:07.7318035Z             {
2026-06-15T15:10:07.7318187Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T15:10:07.7318296Z               "line": 85
2026-06-15T15:10:07.7318393Z             },
2026-06-15T15:10:07.7318507Z             {
2026-06-15T15:10:07.7318650Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T15:10:07.7318765Z               "line": 346
2026-06-15T15:10:07.7318869Z             },
2026-06-15T15:10:07.7319065Z             {
2026-06-15T15:10:07.7319207Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T15:10:07.7319332Z               "line": 281
2026-06-15T15:10:07.7319436Z             },
2026-06-15T15:10:07.7319541Z             {
2026-06-15T15:10:07.7319695Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T15:10:07.7319798Z               "line": 322
2026-06-15T15:10:07.7319899Z             },
2026-06-15T15:10:07.7320005Z             {
2026-06-15T15:10:07.7320155Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T15:10:07.7320265Z               "line": 360
2026-06-15T15:10:07.7320360Z             },
2026-06-15T15:10:07.7320458Z             {
2026-06-15T15:10:07.7320611Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7320726Z               "line": 688
2026-06-15T15:10:07.7320830Z             },
2026-06-15T15:10:07.7320931Z             {
2026-06-15T15:10:07.7321087Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T15:10:07.7321197Z               "line": 397
2026-06-15T15:10:07.7321308Z             },
2026-06-15T15:10:07.7321407Z             {
2026-06-15T15:10:07.7321546Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T15:10:07.7321769Z               "line": 440
2026-06-15T15:10:07.7321866Z             }
2026-06-15T15:10:07.7321970Z           ]
2026-06-15T15:10:07.7322074Z         }
2026-06-15T15:10:07.7322171Z       }
2026-06-15T15:10:07.7322271Z     },
2026-06-15T15:10:07.7322370Z     {
2026-06-15T15:10:07.7322496Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-15T15:10:07.7322736Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-15T15:10:07.7322860Z       "requiredStages": [
2026-06-15T15:10:07.7322963Z         "impl",
2026-06-15T15:10:07.7323077Z         "unit"
2026-06-15T15:10:07.7323178Z       ],
2026-06-15T15:10:07.7323283Z       "stages": {
2026-06-15T15:10:07.7323483Z         "doc": {
2026-06-15T15:10:07.7323593Z           "complete": false,
2026-06-15T15:10:07.7323721Z           "evidence": []
2026-06-15T15:10:07.7323822Z         },
2026-06-15T15:10:07.7323922Z         "impl": {
2026-06-15T15:10:07.7324036Z           "complete": true,
2026-06-15T15:10:07.7324146Z           "evidence": [
2026-06-15T15:10:07.7324250Z             {
2026-06-15T15:10:07.7324393Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T15:10:07.7324508Z               "line": 169
2026-06-15T15:10:07.7324594Z             }
2026-06-15T15:10:07.7324698Z           ]
2026-06-15T15:10:07.7324800Z         },
2026-06-15T15:10:07.7324908Z         "int": {
2026-06-15T15:10:07.7325008Z           "complete": true,
2026-06-15T15:10:07.7325110Z           "evidence": [
2026-06-15T15:10:07.7325213Z             {
2026-06-15T15:10:07.7325343Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T15:10:07.7325453Z               "line": 44
2026-06-15T15:10:07.7325556Z             },
2026-06-15T15:10:07.7325665Z             {
2026-06-15T15:10:07.7325800Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T15:10:07.7325904Z               "line": 66
2026-06-15T15:10:07.7326009Z             }
2026-06-15T15:10:07.7326105Z           ]
2026-06-15T15:10:07.7326209Z         },
2026-06-15T15:10:07.7326319Z         "unit": {
2026-06-15T15:10:07.7326438Z           "complete": true,
2026-06-15T15:10:07.7326547Z           "evidence": [
2026-06-15T15:10:07.7326653Z             {
2026-06-15T15:10:07.7326796Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T15:10:07.7326910Z               "line": 186
2026-06-15T15:10:07.7326997Z             },
2026-06-15T15:10:07.7327101Z             {
2026-06-15T15:10:07.7327243Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T15:10:07.7327354Z               "line": 238
2026-06-15T15:10:07.7327448Z             },
2026-06-15T15:10:07.7327558Z             {
2026-06-15T15:10:07.7327688Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T15:10:07.7327811Z               "line": 266
2026-06-15T15:10:07.7327915Z             }
2026-06-15T15:10:07.7328015Z           ]
2026-06-15T15:10:07.7328128Z         }
2026-06-15T15:10:07.7328227Z       }
2026-06-15T15:10:07.7328338Z     },
2026-06-15T15:10:07.7328437Z     {
2026-06-15T15:10:07.7328585Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-15T15:10:07.7329119Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-15T15:10:07.7329244Z       "requiredStages": [
2026-06-15T15:10:07.7329348Z         "impl",
2026-06-15T15:10:07.7329448Z         "unit",
2026-06-15T15:10:07.7329549Z         "int"
2026-06-15T15:10:07.7329653Z       ],
2026-06-15T15:10:07.7329763Z       "stages": {
2026-06-15T15:10:07.7329859Z         "doc": {
2026-06-15T15:10:07.7329977Z           "complete": false,
2026-06-15T15:10:07.7330096Z           "evidence": []
2026-06-15T15:10:07.7330203Z         },
2026-06-15T15:10:07.7330311Z         "impl": {
2026-06-15T15:10:07.7330421Z           "complete": true,
2026-06-15T15:10:07.7330527Z           "evidence": [
2026-06-15T15:10:07.7330626Z             {
2026-06-15T15:10:07.7330777Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7331004Z               "line": 152
2026-06-15T15:10:07.7331104Z             },
2026-06-15T15:10:07.7331205Z             {
2026-06-15T15:10:07.7331347Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7331462Z               "line": 176
2026-06-15T15:10:07.7331558Z             },
2026-06-15T15:10:07.7331657Z             {
2026-06-15T15:10:07.7334472Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.7334619Z               "line": 79
2026-06-15T15:10:07.7334721Z             },
2026-06-15T15:10:07.7334825Z             {
2026-06-15T15:10:07.7334968Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T15:10:07.7335211Z               "line": 52
2026-06-15T15:10:07.7335317Z             },
2026-06-15T15:10:07.7335416Z             {
2026-06-15T15:10:07.7335569Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7335685Z               "line": 164
2026-06-15T15:10:07.7335792Z             },
2026-06-15T15:10:07.7335893Z             {
2026-06-15T15:10:07.7336041Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T15:10:07.7336154Z               "line": 27
2026-06-15T15:10:07.7336254Z             },
2026-06-15T15:10:07.7336360Z             {
2026-06-15T15:10:07.7336507Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T15:10:07.7336612Z               "line": 79
2026-06-15T15:10:07.7336718Z             },
2026-06-15T15:10:07.7336817Z             {
2026-06-15T15:10:07.7336956Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T15:10:07.7337070Z               "line": 102
2026-06-15T15:10:07.7337169Z             },
2026-06-15T15:10:07.7337276Z             {
2026-06-15T15:10:07.7337417Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7337523Z               "line": 116
2026-06-15T15:10:07.7337628Z             }
2026-06-15T15:10:07.7337746Z           ]
2026-06-15T15:10:07.7337852Z         },
2026-06-15T15:10:07.7337952Z         "int": {
2026-06-15T15:10:07.7338066Z           "complete": true,
2026-06-15T15:10:07.7338172Z           "evidence": [
2026-06-15T15:10:07.7338276Z             {
2026-06-15T15:10:07.7338432Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T15:10:07.7338533Z               "line": 38
2026-06-15T15:10:07.7338636Z             }
2026-06-15T15:10:07.7338735Z           ]
2026-06-15T15:10:07.7338840Z         },
2026-06-15T15:10:07.7339031Z         "unit": {
2026-06-15T15:10:07.7339150Z           "complete": true,
2026-06-15T15:10:07.7339255Z           "evidence": [
2026-06-15T15:10:07.7339360Z             {
2026-06-15T15:10:07.7339513Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7339627Z               "line": 628
2026-06-15T15:10:07.7339726Z             },
2026-06-15T15:10:07.7339823Z             {
2026-06-15T15:10:07.7339965Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7340075Z               "line": 378
2026-06-15T15:10:07.7340171Z             },
2026-06-15T15:10:07.7340275Z             {
2026-06-15T15:10:07.7340424Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T15:10:07.7340537Z               "line": 124
2026-06-15T15:10:07.7340642Z             },
2026-06-15T15:10:07.7340739Z             {
2026-06-15T15:10:07.7340880Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T15:10:07.7340981Z               "line": 143
2026-06-15T15:10:07.7341083Z             },
2026-06-15T15:10:07.7341181Z             {
2026-06-15T15:10:07.7341323Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T15:10:07.7341428Z               "line": 160
2026-06-15T15:10:07.7341531Z             },
2026-06-15T15:10:07.7341640Z             {
2026-06-15T15:10:07.7341780Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T15:10:07.7341893Z               "line": 187
2026-06-15T15:10:07.7341993Z             },
2026-06-15T15:10:07.7342094Z             {
2026-06-15T15:10:07.7342236Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T15:10:07.7342452Z               "line": 206
2026-06-15T15:10:07.7342556Z             },
2026-06-15T15:10:07.7342656Z             {
2026-06-15T15:10:07.7342804Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7342903Z               "line": 229
2026-06-15T15:10:07.7343005Z             }
2026-06-15T15:10:07.7343109Z           ]
2026-06-15T15:10:07.7343214Z         }
2026-06-15T15:10:07.7343311Z       }
2026-06-15T15:10:07.7343405Z     },
2026-06-15T15:10:07.7343500Z     {
2026-06-15T15:10:07.7343640Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-15T15:10:07.7344332Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-15T15:10:07.7344564Z       "requiredStages": [
2026-06-15T15:10:07.7344670Z         "impl",
2026-06-15T15:10:07.7344784Z         "unit"
2026-06-15T15:10:07.7344874Z       ],
2026-06-15T15:10:07.7344980Z       "stages": {
2026-06-15T15:10:07.7345080Z         "doc": {
2026-06-15T15:10:07.7345199Z           "complete": false,
2026-06-15T15:10:07.7345304Z           "evidence": []
2026-06-15T15:10:07.7345404Z         },
2026-06-15T15:10:07.7345504Z         "impl": {
2026-06-15T15:10:07.7345610Z           "complete": true,
2026-06-15T15:10:07.7345714Z           "evidence": [
2026-06-15T15:10:07.7345814Z             {
2026-06-15T15:10:07.7345958Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7346067Z               "line": 621
2026-06-15T15:10:07.7346168Z             },
2026-06-15T15:10:07.7346282Z             {
2026-06-15T15:10:07.7346419Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7346530Z               "line": 834
2026-06-15T15:10:07.7346625Z             }
2026-06-15T15:10:07.7346724Z           ]
2026-06-15T15:10:07.7346829Z         },
2026-06-15T15:10:07.7346930Z         "int": {
2026-06-15T15:10:07.7347048Z           "complete": false,
2026-06-15T15:10:07.7347158Z           "evidence": []
2026-06-15T15:10:07.7347263Z         },
2026-06-15T15:10:07.7347362Z         "unit": {
2026-06-15T15:10:07.7347483Z           "complete": true,
2026-06-15T15:10:07.7347597Z           "evidence": [
2026-06-15T15:10:07.7347696Z             {
2026-06-15T15:10:07.7347845Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T15:10:07.7347954Z               "line": 161
2026-06-15T15:10:07.7348054Z             }
2026-06-15T15:10:07.7348156Z           ]
2026-06-15T15:10:07.7348259Z         }
2026-06-15T15:10:07.7348364Z       }
2026-06-15T15:10:07.7348465Z     },
2026-06-15T15:10:07.7348568Z     {
2026-06-15T15:10:07.7348688Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-15T15:10:07.7348907Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-15T15:10:07.7349088Z       "requiredStages": [
2026-06-15T15:10:07.7349196Z         "impl",
2026-06-15T15:10:07.7349304Z         "unit"
2026-06-15T15:10:07.7349395Z       ],
2026-06-15T15:10:07.7349497Z       "stages": {
2026-06-15T15:10:07.7349595Z         "doc": {
2026-06-15T15:10:07.7349715Z           "complete": false,
2026-06-15T15:10:07.7349815Z           "evidence": []
2026-06-15T15:10:07.7349924Z         },
2026-06-15T15:10:07.7350035Z         "impl": {
2026-06-15T15:10:07.7350140Z           "complete": true,
2026-06-15T15:10:07.7350244Z           "evidence": [
2026-06-15T15:10:07.7350350Z             {
2026-06-15T15:10:07.7350497Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7350601Z               "line": 40
2026-06-15T15:10:07.7350713Z             },
2026-06-15T15:10:07.7350812Z             {
2026-06-15T15:10:07.7350945Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7351055Z               "line": 103
2026-06-15T15:10:07.7351150Z             },
2026-06-15T15:10:07.7351285Z             {
2026-06-15T15:10:07.7351422Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7351638Z               "line": 218
2026-06-15T15:10:07.7351737Z             },
2026-06-15T15:10:07.7351840Z             {
2026-06-15T15:10:07.7351974Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7352077Z               "line": 323
2026-06-15T15:10:07.7352176Z             }
2026-06-15T15:10:07.7352282Z           ]
2026-06-15T15:10:07.7352382Z         },
2026-06-15T15:10:07.7352486Z         "int": {
2026-06-15T15:10:07.7352597Z           "complete": false,
2026-06-15T15:10:07.7352702Z           "evidence": []
2026-06-15T15:10:07.7352801Z         },
2026-06-15T15:10:07.7352912Z         "unit": {
2026-06-15T15:10:07.7353140Z           "complete": true,
2026-06-15T15:10:07.7353241Z           "evidence": [
2026-06-15T15:10:07.7353335Z             {
2026-06-15T15:10:07.7353478Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7353589Z               "line": 361
2026-06-15T15:10:07.7353688Z             },
2026-06-15T15:10:07.7353793Z             {
2026-06-15T15:10:07.7353932Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7354050Z               "line": 433
2026-06-15T15:10:07.7354152Z             },
2026-06-15T15:10:07.7354256Z             {
2026-06-15T15:10:07.7354397Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7354502Z               "line": 496
2026-06-15T15:10:07.7354597Z             },
2026-06-15T15:10:07.7354696Z             {
2026-06-15T15:10:07.7354844Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7354950Z               "line": 517
2026-06-15T15:10:07.7355048Z             }
2026-06-15T15:10:07.7355149Z           ]
2026-06-15T15:10:07.7355249Z         }
2026-06-15T15:10:07.7355354Z       }
2026-06-15T15:10:07.7355454Z     },
2026-06-15T15:10:07.7355559Z     {
2026-06-15T15:10:07.7355696Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-15T15:10:07.7355836Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-15T15:10:07.7355955Z       "requiredStages": [
2026-06-15T15:10:07.7356064Z         "impl",
2026-06-15T15:10:07.7356170Z         "unit"
2026-06-15T15:10:07.7356265Z       ],
2026-06-15T15:10:07.7356369Z       "stages": {
2026-06-15T15:10:07.7356480Z         "doc": {
2026-06-15T15:10:07.7356579Z           "complete": false,
2026-06-15T15:10:07.7356684Z           "evidence": []
2026-06-15T15:10:07.7356781Z         },
2026-06-15T15:10:07.7356889Z         "impl": {
2026-06-15T15:10:07.7357004Z           "complete": true,
2026-06-15T15:10:07.7357110Z           "evidence": [
2026-06-15T15:10:07.7357213Z             {
2026-06-15T15:10:07.7357350Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7357470Z               "line": 116
2026-06-15T15:10:07.7357565Z             },
2026-06-15T15:10:07.7357665Z             {
2026-06-15T15:10:07.7357804Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7357903Z               "line": 211
2026-06-15T15:10:07.7358014Z             }
2026-06-15T15:10:07.7358114Z           ]
2026-06-15T15:10:07.7358218Z         },
2026-06-15T15:10:07.7358314Z         "int": {
2026-06-15T15:10:07.7358434Z           "complete": false,
2026-06-15T15:10:07.7358538Z           "evidence": []
2026-06-15T15:10:07.7358638Z         },
2026-06-15T15:10:07.7358739Z         "unit": {
2026-06-15T15:10:07.7358839Z           "complete": true,
2026-06-15T15:10:07.7359025Z           "evidence": [
2026-06-15T15:10:07.7359124Z             {
2026-06-15T15:10:07.7359254Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7359355Z               "line": 388
2026-06-15T15:10:07.7359457Z             },
2026-06-15T15:10:07.7359566Z             {
2026-06-15T15:10:07.7359701Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7359803Z               "line": 469
2026-06-15T15:10:07.7359907Z             }
2026-06-15T15:10:07.7360013Z           ]
2026-06-15T15:10:07.7360108Z         }
2026-06-15T15:10:07.7360208Z       }
2026-06-15T15:10:07.7360409Z     },
2026-06-15T15:10:07.7360513Z     {
2026-06-15T15:10:07.7360652Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-15T15:10:07.7361850Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-15T15:10:07.7361972Z       "requiredStages": [
2026-06-15T15:10:07.7362073Z         "impl",
2026-06-15T15:10:07.7362174Z         "unit"
2026-06-15T15:10:07.7362372Z       ],
2026-06-15T15:10:07.7362477Z       "stages": {
2026-06-15T15:10:07.7362582Z         "doc": {
2026-06-15T15:10:07.7362689Z           "complete": true,
2026-06-15T15:10:07.7362794Z           "evidence": [
2026-06-15T15:10:07.7362890Z             {
2026-06-15T15:10:07.7363013Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7363128Z               "line": 206
2026-06-15T15:10:07.7363229Z             }
2026-06-15T15:10:07.7363332Z           ]
2026-06-15T15:10:07.7363433Z         },
2026-06-15T15:10:07.7363538Z         "impl": {
2026-06-15T15:10:07.7363652Z           "complete": true,
2026-06-15T15:10:07.7363748Z           "evidence": [
2026-06-15T15:10:07.7363848Z             {
2026-06-15T15:10:07.7364000Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7364111Z               "line": 593
2026-06-15T15:10:07.7364210Z             },
2026-06-15T15:10:07.7364310Z             {
2026-06-15T15:10:07.7364455Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7364567Z               "line": 685
2026-06-15T15:10:07.7364673Z             },
2026-06-15T15:10:07.7364770Z             {
2026-06-15T15:10:07.7364925Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.7365024Z               "line": 183
2026-06-15T15:10:07.7365129Z             }
2026-06-15T15:10:07.7365232Z           ]
2026-06-15T15:10:07.7365332Z         },
2026-06-15T15:10:07.7365432Z         "int": {
2026-06-15T15:10:07.7365538Z           "complete": false,
2026-06-15T15:10:07.7365651Z           "evidence": []
2026-06-15T15:10:07.7365752Z         },
2026-06-15T15:10:07.7365848Z         "unit": {
2026-06-15T15:10:07.7365966Z           "complete": true,
2026-06-15T15:10:07.7366062Z           "evidence": [
2026-06-15T15:10:07.7366167Z             {
2026-06-15T15:10:07.7366310Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7366424Z               "line": 734
2026-06-15T15:10:07.7366520Z             },
2026-06-15T15:10:07.7366634Z             {
2026-06-15T15:10:07.7366791Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T15:10:07.7366901Z               "line": 44
2026-06-15T15:10:07.7367007Z             },
2026-06-15T15:10:07.7367101Z             {
2026-06-15T15:10:07.7367259Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-15T15:10:07.7367369Z               "line": 52
2026-06-15T15:10:07.7367477Z             },
2026-06-15T15:10:07.7367579Z             {
2026-06-15T15:10:07.7367717Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T15:10:07.7367820Z               "line": 57
2026-06-15T15:10:07.7367920Z             },
2026-06-15T15:10:07.7368026Z             {
2026-06-15T15:10:07.7368192Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T15:10:07.7368293Z               "line": 54
2026-06-15T15:10:07.7368398Z             }
2026-06-15T15:10:07.7368497Z           ]
2026-06-15T15:10:07.7368598Z         }
2026-06-15T15:10:07.7368698Z       }
2026-06-15T15:10:07.7368797Z     },
2026-06-15T15:10:07.7368898Z     {
2026-06-15T15:10:07.7369108Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-15T15:10:07.7369356Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-15T15:10:07.7369470Z       "requiredStages": [
2026-06-15T15:10:07.7369684Z         "impl",
2026-06-15T15:10:07.7369784Z         "unit"
2026-06-15T15:10:07.7369891Z       ],
2026-06-15T15:10:07.7369994Z       "stages": {
2026-06-15T15:10:07.7370089Z         "doc": {
2026-06-15T15:10:07.7370203Z           "complete": false,
2026-06-15T15:10:07.7370307Z           "evidence": []
2026-06-15T15:10:07.7370411Z         },
2026-06-15T15:10:07.7370520Z         "impl": {
2026-06-15T15:10:07.7370636Z           "complete": true,
2026-06-15T15:10:07.7370730Z           "evidence": [
2026-06-15T15:10:07.7370831Z             {
2026-06-15T15:10:07.7370974Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T15:10:07.7371184Z               "line": 26
2026-06-15T15:10:07.7371279Z             },
2026-06-15T15:10:07.7371378Z             {
2026-06-15T15:10:07.7371523Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T15:10:07.7371627Z               "line": 135
2026-06-15T15:10:07.7371732Z             },
2026-06-15T15:10:07.7371837Z             {
2026-06-15T15:10:07.7371984Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T15:10:07.7372100Z               "line": 26
2026-06-15T15:10:07.7372199Z             },
2026-06-15T15:10:07.7372308Z             {
2026-06-15T15:10:07.7372463Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T15:10:07.7372570Z               "line": 237
2026-06-15T15:10:07.7372671Z             }
2026-06-15T15:10:07.7372768Z           ]
2026-06-15T15:10:07.7372866Z         },
2026-06-15T15:10:07.7372971Z         "int": {
2026-06-15T15:10:07.7373085Z           "complete": false,
2026-06-15T15:10:07.7373188Z           "evidence": []
2026-06-15T15:10:07.7373287Z         },
2026-06-15T15:10:07.7373388Z         "unit": {
2026-06-15T15:10:07.7373503Z           "complete": true,
2026-06-15T15:10:07.7373602Z           "evidence": [
2026-06-15T15:10:07.7373702Z             {
2026-06-15T15:10:07.7373855Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T15:10:07.7373973Z               "line": 161
2026-06-15T15:10:07.7374075Z             },
2026-06-15T15:10:07.7374175Z             {
2026-06-15T15:10:07.7374313Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T15:10:07.7374423Z               "line": 170
2026-06-15T15:10:07.7374522Z             },
2026-06-15T15:10:07.7374627Z             {
2026-06-15T15:10:07.7374770Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T15:10:07.7374870Z               "line": 179
2026-06-15T15:10:07.7374981Z             },
2026-06-15T15:10:07.7375090Z             {
2026-06-15T15:10:07.7375233Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T15:10:07.7375344Z               "line": 190
2026-06-15T15:10:07.7375447Z             },
2026-06-15T15:10:07.7375551Z             {
2026-06-15T15:10:07.7375685Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T15:10:07.7375787Z               "line": 199
2026-06-15T15:10:07.7375892Z             },
2026-06-15T15:10:07.7375993Z             {
2026-06-15T15:10:07.7376136Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T15:10:07.7376245Z               "line": 216
2026-06-15T15:10:07.7376346Z             },
2026-06-15T15:10:07.7376450Z             {
2026-06-15T15:10:07.7376594Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T15:10:07.7376703Z               "line": 242
2026-06-15T15:10:07.7376808Z             },
2026-06-15T15:10:07.7376909Z             {
2026-06-15T15:10:07.7377051Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T15:10:07.7377155Z               "line": 295
2026-06-15T15:10:07.7377253Z             },
2026-06-15T15:10:07.7377356Z             {
2026-06-15T15:10:07.7377494Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T15:10:07.7377610Z               "line": 244
2026-06-15T15:10:07.7377709Z             },
2026-06-15T15:10:07.7377809Z             {
2026-06-15T15:10:07.7377962Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T15:10:07.7378144Z               "line": 265
2026-06-15T15:10:07.7378244Z             },
2026-06-15T15:10:07.7378347Z             {
2026-06-15T15:10:07.7378499Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T15:10:07.7378615Z               "line": 293
2026-06-15T15:10:07.7378714Z             },
2026-06-15T15:10:07.7378814Z             {
2026-06-15T15:10:07.7379043Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T15:10:07.7379154Z               "line": 317
2026-06-15T15:10:07.7379254Z             },
2026-06-15T15:10:07.7379353Z             {
2026-06-15T15:10:07.7379501Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T15:10:07.7379725Z               "line": 327
2026-06-15T15:10:07.7379821Z             },
2026-06-15T15:10:07.7379925Z             {
2026-06-15T15:10:07.7380078Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T15:10:07.7380188Z               "line": 540
2026-06-15T15:10:07.7380287Z             }
2026-06-15T15:10:07.7380402Z           ]
2026-06-15T15:10:07.7380503Z         }
2026-06-15T15:10:07.7380606Z       }
2026-06-15T15:10:07.7380706Z     },
2026-06-15T15:10:07.7380806Z     {
2026-06-15T15:10:07.7380952Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-15T15:10:07.7381129Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-15T15:10:07.7381248Z       "requiredStages": [
2026-06-15T15:10:07.7381347Z         "impl",
2026-06-15T15:10:07.7381449Z         "unit"
2026-06-15T15:10:07.7381548Z       ],
2026-06-15T15:10:07.7381662Z       "stages": {
2026-06-15T15:10:07.7381768Z         "doc": {
2026-06-15T15:10:07.7381896Z           "complete": false,
2026-06-15T15:10:07.7382016Z           "evidence": []
2026-06-15T15:10:07.7382116Z         },
2026-06-15T15:10:07.7382216Z         "impl": {
2026-06-15T15:10:07.7382325Z           "complete": true,
2026-06-15T15:10:07.7382431Z           "evidence": [
2026-06-15T15:10:07.7382526Z             {
2026-06-15T15:10:07.7382670Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T15:10:07.7382778Z               "line": 25
2026-06-15T15:10:07.7382883Z             },
2026-06-15T15:10:07.7382980Z             {
2026-06-15T15:10:07.7383121Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T15:10:07.7383241Z               "line": 26
2026-06-15T15:10:07.7383342Z             },
2026-06-15T15:10:07.7383441Z             {
2026-06-15T15:10:07.7383592Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T15:10:07.7383697Z               "line": 159
2026-06-15T15:10:07.7383800Z             }
2026-06-15T15:10:07.7383895Z           ]
2026-06-15T15:10:07.7384001Z         },
2026-06-15T15:10:07.7384106Z         "int": {
2026-06-15T15:10:07.7384228Z           "complete": false,
2026-06-15T15:10:07.7384339Z           "evidence": []
2026-06-15T15:10:07.7384444Z         },
2026-06-15T15:10:07.7384548Z         "unit": {
2026-06-15T15:10:07.7384664Z           "complete": true,
2026-06-15T15:10:07.7384772Z           "evidence": [
2026-06-15T15:10:07.7384868Z             {
2026-06-15T15:10:07.7385006Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T15:10:07.7385120Z               "line": 188
2026-06-15T15:10:07.7385217Z             },
2026-06-15T15:10:07.7385326Z             {
2026-06-15T15:10:07.7385459Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T15:10:07.7385560Z               "line": 240
2026-06-15T15:10:07.7385664Z             },
2026-06-15T15:10:07.7385769Z             {
2026-06-15T15:10:07.7385909Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T15:10:07.7386007Z               "line": 186
2026-06-15T15:10:07.7386102Z             }
2026-06-15T15:10:07.7386216Z           ]
2026-06-15T15:10:07.7386324Z         }
2026-06-15T15:10:07.7386424Z       }
2026-06-15T15:10:07.7386529Z     },
2026-06-15T15:10:07.7386621Z     {
2026-06-15T15:10:07.7386738Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-15T15:10:07.7386939Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-15T15:10:07.7387149Z       "requiredStages": [
2026-06-15T15:10:07.7387249Z         "impl",
2026-06-15T15:10:07.7387353Z         "unit"
2026-06-15T15:10:07.7387450Z       ],
2026-06-15T15:10:07.7387564Z       "stages": {
2026-06-15T15:10:07.7387668Z         "doc": {
2026-06-15T15:10:07.7387783Z           "complete": false,
2026-06-15T15:10:07.7387888Z           "evidence": []
2026-06-15T15:10:07.7387988Z         },
2026-06-15T15:10:07.7388093Z         "impl": {
2026-06-15T15:10:07.7388207Z           "complete": true,
2026-06-15T15:10:07.7388321Z           "evidence": [
2026-06-15T15:10:07.7388423Z             {
2026-06-15T15:10:07.7388569Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T15:10:07.7388757Z               "line": 48
2026-06-15T15:10:07.7388865Z             },
2026-06-15T15:10:07.7389026Z             {
2026-06-15T15:10:07.7389170Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T15:10:07.7389274Z               "line": 55
2026-06-15T15:10:07.7389370Z             },
2026-06-15T15:10:07.7389480Z             {
2026-06-15T15:10:07.7389617Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T15:10:07.7389724Z               "line": 74
2026-06-15T15:10:07.7389818Z             },
2026-06-15T15:10:07.7389918Z             {
2026-06-15T15:10:07.7390062Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T15:10:07.7390161Z               "line": 91
2026-06-15T15:10:07.7390270Z             }
2026-06-15T15:10:07.7390363Z           ]
2026-06-15T15:10:07.7390462Z         },
2026-06-15T15:10:07.7390562Z         "int": {
2026-06-15T15:10:07.7390673Z           "complete": false,
2026-06-15T15:10:07.7390781Z           "evidence": []
2026-06-15T15:10:07.7390886Z         },
2026-06-15T15:10:07.7390992Z         "unit": {
2026-06-15T15:10:07.7391105Z           "complete": true,
2026-06-15T15:10:07.7391219Z           "evidence": [
2026-06-15T15:10:07.7391324Z             {
2026-06-15T15:10:07.7391465Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T15:10:07.7391574Z               "line": 149
2026-06-15T15:10:07.7391674Z             },
2026-06-15T15:10:07.7391779Z             {
2026-06-15T15:10:07.7391908Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T15:10:07.7392018Z               "line": 166
2026-06-15T15:10:07.7392118Z             },
2026-06-15T15:10:07.7392222Z             {
2026-06-15T15:10:07.7392366Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T15:10:07.7392470Z               "line": 176
2026-06-15T15:10:07.7392581Z             },
2026-06-15T15:10:07.7392681Z             {
2026-06-15T15:10:07.7392827Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T15:10:07.7392943Z               "line": 194
2026-06-15T15:10:07.7393047Z             },
2026-06-15T15:10:07.7393152Z             {
2026-06-15T15:10:07.7393277Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T15:10:07.7393395Z               "line": 207
2026-06-15T15:10:07.7393496Z             }
2026-06-15T15:10:07.7393601Z           ]
2026-06-15T15:10:07.7393705Z         }
2026-06-15T15:10:07.7393806Z       }
2026-06-15T15:10:07.7393907Z     },
2026-06-15T15:10:07.7394010Z     {
2026-06-15T15:10:07.7394147Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-15T15:10:07.7394351Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-15T15:10:07.7394465Z       "requiredStages": [
2026-06-15T15:10:07.7394561Z         "impl",
2026-06-15T15:10:07.7394661Z         "unit"
2026-06-15T15:10:07.7394770Z       ],
2026-06-15T15:10:07.7394876Z       "stages": {
2026-06-15T15:10:07.7394981Z         "doc": {
2026-06-15T15:10:07.7395089Z           "complete": false,
2026-06-15T15:10:07.7395215Z           "evidence": []
2026-06-15T15:10:07.7395314Z         },
2026-06-15T15:10:07.7395423Z         "impl": {
2026-06-15T15:10:07.7395539Z           "complete": true,
2026-06-15T15:10:07.7395648Z           "evidence": [
2026-06-15T15:10:07.7395748Z             {
2026-06-15T15:10:07.7395896Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7396120Z               "line": 416
2026-06-15T15:10:07.7396225Z             },
2026-06-15T15:10:07.7396324Z             {
2026-06-15T15:10:07.7396459Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T15:10:07.7396563Z               "line": 26
2026-06-15T15:10:07.7396667Z             }
2026-06-15T15:10:07.7396767Z           ]
2026-06-15T15:10:07.7396871Z         },
2026-06-15T15:10:07.7396969Z         "int": {
2026-06-15T15:10:07.7397075Z           "complete": false,
2026-06-15T15:10:07.7397190Z           "evidence": []
2026-06-15T15:10:07.7397289Z         },
2026-06-15T15:10:07.7397394Z         "unit": {
2026-06-15T15:10:07.7397603Z           "complete": true,
2026-06-15T15:10:07.7397709Z           "evidence": [
2026-06-15T15:10:07.7397804Z             {
2026-06-15T15:10:07.7397952Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T15:10:07.7398053Z               "line": 150
2026-06-15T15:10:07.7398157Z             },
2026-06-15T15:10:07.7398262Z             {
2026-06-15T15:10:07.7398402Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T15:10:07.7398515Z               "line": 208
2026-06-15T15:10:07.7398615Z             }
2026-06-15T15:10:07.7398721Z           ]
2026-06-15T15:10:07.7398824Z         }
2026-06-15T15:10:07.7398920Z       }
2026-06-15T15:10:07.7399115Z     },
2026-06-15T15:10:07.7399216Z     {
2026-06-15T15:10:07.7399355Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-15T15:10:07.7400712Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-15T15:10:07.7400840Z       "requiredStages": [
2026-06-15T15:10:07.7400947Z         "doc",
2026-06-15T15:10:07.7401050Z         "impl",
2026-06-15T15:10:07.7401155Z         "unit"
2026-06-15T15:10:07.7401257Z       ],
2026-06-15T15:10:07.7401365Z       "stages": {
2026-06-15T15:10:07.7401465Z         "doc": {
2026-06-15T15:10:07.7401572Z           "complete": true,
2026-06-15T15:10:07.7401684Z           "evidence": [
2026-06-15T15:10:07.7401788Z             {
2026-06-15T15:10:07.7401922Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7402020Z               "line": 214
2026-06-15T15:10:07.7402119Z             }
2026-06-15T15:10:07.7402225Z           ]
2026-06-15T15:10:07.7402326Z         },
2026-06-15T15:10:07.7402443Z         "impl": {
2026-06-15T15:10:07.7402554Z           "complete": true,
2026-06-15T15:10:07.7402673Z           "evidence": [
2026-06-15T15:10:07.7402772Z             {
2026-06-15T15:10:07.7402917Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7403026Z               "line": 54
2026-06-15T15:10:07.7403131Z             },
2026-06-15T15:10:07.7403236Z             {
2026-06-15T15:10:07.7403383Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7403494Z               "line": 511
2026-06-15T15:10:07.7403598Z             },
2026-06-15T15:10:07.7403698Z             {
2026-06-15T15:10:07.7403852Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7403965Z               "line": 36
2026-06-15T15:10:07.7404071Z             },
2026-06-15T15:10:07.7404157Z             {
2026-06-15T15:10:07.7404309Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7404419Z               "line": 59
2026-06-15T15:10:07.7404524Z             },
2026-06-15T15:10:07.7404627Z             {
2026-06-15T15:10:07.7404766Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7404887Z               "line": 83
2026-06-15T15:10:07.7404986Z             },
2026-06-15T15:10:07.7405092Z             {
2026-06-15T15:10:07.7405235Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7405446Z               "line": 140
2026-06-15T15:10:07.7405555Z             },
2026-06-15T15:10:07.7405654Z             {
2026-06-15T15:10:07.7405803Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7405912Z               "line": 159
2026-06-15T15:10:07.7406017Z             },
2026-06-15T15:10:07.7406118Z             {
2026-06-15T15:10:07.7406260Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7406371Z               "line": 384
2026-06-15T15:10:07.7406475Z             },
2026-06-15T15:10:07.7406570Z             {
2026-06-15T15:10:07.7406804Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7406908Z               "line": 526
2026-06-15T15:10:07.7407010Z             },
2026-06-15T15:10:07.7407109Z             {
2026-06-15T15:10:07.7407251Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7407360Z               "line": 572
2026-06-15T15:10:07.7407459Z             },
2026-06-15T15:10:07.7407558Z             {
2026-06-15T15:10:07.7407707Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7407820Z               "line": 300
2026-06-15T15:10:07.7407921Z             },
2026-06-15T15:10:07.7408022Z             {
2026-06-15T15:10:07.7408145Z               "path": "crates/spt/src/main.rs",
2026-06-15T15:10:07.7408260Z               "line": 41
2026-06-15T15:10:07.7408365Z             }
2026-06-15T15:10:07.7408464Z           ]
2026-06-15T15:10:07.7408565Z         },
2026-06-15T15:10:07.7408665Z         "int": {
2026-06-15T15:10:07.7408784Z           "complete": false,
2026-06-15T15:10:07.7408904Z           "evidence": []
2026-06-15T15:10:07.7409089Z         },
2026-06-15T15:10:07.7409189Z         "unit": {
2026-06-15T15:10:07.7409300Z           "complete": true,
2026-06-15T15:10:07.7409414Z           "evidence": [
2026-06-15T15:10:07.7409514Z             {
2026-06-15T15:10:07.7409661Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7409780Z               "line": 785
2026-06-15T15:10:07.7409882Z             },
2026-06-15T15:10:07.7409986Z             {
2026-06-15T15:10:07.7410132Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7410247Z               "line": 826
2026-06-15T15:10:07.7410342Z             },
2026-06-15T15:10:07.7410447Z             {
2026-06-15T15:10:07.7410586Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7410699Z               "line": 900
2026-06-15T15:10:07.7410815Z             }
2026-06-15T15:10:07.7410924Z           ]
2026-06-15T15:10:07.7411023Z         }
2026-06-15T15:10:07.7411129Z       }
2026-06-15T15:10:07.7411225Z     },
2026-06-15T15:10:07.7411329Z     {
2026-06-15T15:10:07.7411468Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-15T15:10:07.7413257Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-15T15:10:07.7413381Z       "requiredStages": [
2026-06-15T15:10:07.7413491Z         "impl",
2026-06-15T15:10:07.7413590Z         "unit"
2026-06-15T15:10:07.7413701Z       ],
2026-06-15T15:10:07.7413810Z       "stages": {
2026-06-15T15:10:07.7416472Z         "doc": {
2026-06-15T15:10:07.7416630Z           "complete": false,
2026-06-15T15:10:07.7416744Z           "evidence": []
2026-06-15T15:10:07.7416839Z         },
2026-06-15T15:10:07.7416945Z         "impl": {
2026-06-15T15:10:07.7417058Z           "complete": true,
2026-06-15T15:10:07.7417331Z           "evidence": [
2026-06-15T15:10:07.7417436Z             {
2026-06-15T15:10:07.7417599Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T15:10:07.7417702Z               "line": 31
2026-06-15T15:10:07.7417806Z             }
2026-06-15T15:10:07.7417906Z           ]
2026-06-15T15:10:07.7418010Z         },
2026-06-15T15:10:07.7418109Z         "int": {
2026-06-15T15:10:07.7418228Z           "complete": false,
2026-06-15T15:10:07.7418339Z           "evidence": []
2026-06-15T15:10:07.7418438Z         },
2026-06-15T15:10:07.7418539Z         "unit": {
2026-06-15T15:10:07.7418649Z           "complete": true,
2026-06-15T15:10:07.7418752Z           "evidence": [
2026-06-15T15:10:07.7419029Z             {
2026-06-15T15:10:07.7419192Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T15:10:07.7419306Z               "line": 181
2026-06-15T15:10:07.7419406Z             }
2026-06-15T15:10:07.7419507Z           ]
2026-06-15T15:10:07.7419606Z         }
2026-06-15T15:10:07.7419716Z       }
2026-06-15T15:10:07.7419822Z     },
2026-06-15T15:10:07.7419912Z     {
2026-06-15T15:10:07.7420060Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-15T15:10:07.7420245Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-15T15:10:07.7420365Z       "requiredStages": [
2026-06-15T15:10:07.7420471Z         "impl",
2026-06-15T15:10:07.7420574Z         "unit"
2026-06-15T15:10:07.7420673Z       ],
2026-06-15T15:10:07.7420769Z       "stages": {
2026-06-15T15:10:07.7420870Z         "doc": {
2026-06-15T15:10:07.7420983Z           "complete": false,
2026-06-15T15:10:07.7421093Z           "evidence": []
2026-06-15T15:10:07.7421189Z         },
2026-06-15T15:10:07.7421293Z         "impl": {
2026-06-15T15:10:07.7421413Z           "complete": true,
2026-06-15T15:10:07.7421513Z           "evidence": [
2026-06-15T15:10:07.7421612Z             {
2026-06-15T15:10:07.7421762Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T15:10:07.7421876Z               "line": 49
2026-06-15T15:10:07.7421980Z             },
2026-06-15T15:10:07.7422081Z             {
2026-06-15T15:10:07.7422232Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T15:10:07.7422339Z               "line": 81
2026-06-15T15:10:07.7422443Z             }
2026-06-15T15:10:07.7422538Z           ]
2026-06-15T15:10:07.7422643Z         },
2026-06-15T15:10:07.7422744Z         "int": {
2026-06-15T15:10:07.7422861Z           "complete": false,
2026-06-15T15:10:07.7422971Z           "evidence": []
2026-06-15T15:10:07.7423061Z         },
2026-06-15T15:10:07.7423164Z         "unit": {
2026-06-15T15:10:07.7423268Z           "complete": true,
2026-06-15T15:10:07.7423379Z           "evidence": [
2026-06-15T15:10:07.7423488Z             {
2026-06-15T15:10:07.7423622Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T15:10:07.7423741Z               "line": 156
2026-06-15T15:10:07.7423836Z             },
2026-06-15T15:10:07.7423941Z             {
2026-06-15T15:10:07.7424085Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T15:10:07.7424203Z               "line": 173
2026-06-15T15:10:07.7424305Z             },
2026-06-15T15:10:07.7424404Z             {
2026-06-15T15:10:07.7424551Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T15:10:07.7424652Z               "line": 196
2026-06-15T15:10:07.7424747Z             }
2026-06-15T15:10:07.7424851Z           ]
2026-06-15T15:10:07.7424953Z         }
2026-06-15T15:10:07.7425056Z       }
2026-06-15T15:10:07.7425157Z     },
2026-06-15T15:10:07.7425254Z     {
2026-06-15T15:10:07.7425400Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-15T15:10:07.7425611Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-15T15:10:07.7425719Z       "requiredStages": [
2026-06-15T15:10:07.7425833Z         "impl",
2026-06-15T15:10:07.7425938Z         "unit"
2026-06-15T15:10:07.7426045Z       ],
2026-06-15T15:10:07.7426155Z       "stages": {
2026-06-15T15:10:07.7426256Z         "doc": {
2026-06-15T15:10:07.7426489Z           "complete": false,
2026-06-15T15:10:07.7426599Z           "evidence": []
2026-06-15T15:10:07.7426698Z         },
2026-06-15T15:10:07.7426799Z         "impl": {
2026-06-15T15:10:07.7426913Z           "complete": true,
2026-06-15T15:10:07.7427027Z           "evidence": [
2026-06-15T15:10:07.7427128Z             {
2026-06-15T15:10:07.7427276Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T15:10:07.7427371Z               "line": 120
2026-06-15T15:10:07.7427472Z             }
2026-06-15T15:10:07.7427576Z           ]
2026-06-15T15:10:07.7427676Z         },
2026-06-15T15:10:07.7427782Z         "int": {
2026-06-15T15:10:07.7427891Z           "complete": false,
2026-06-15T15:10:07.7428097Z           "evidence": []
2026-06-15T15:10:07.7428197Z         },
2026-06-15T15:10:07.7428300Z         "unit": {
2026-06-15T15:10:07.7428414Z           "complete": true,
2026-06-15T15:10:07.7428528Z           "evidence": [
2026-06-15T15:10:07.7428631Z             {
2026-06-15T15:10:07.7428784Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T15:10:07.7428894Z               "line": 212
2026-06-15T15:10:07.7429065Z             },
2026-06-15T15:10:07.7429161Z             {
2026-06-15T15:10:07.7429303Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T15:10:07.7429414Z               "line": 221
2026-06-15T15:10:07.7429513Z             },
2026-06-15T15:10:07.7429618Z             {
2026-06-15T15:10:07.7429762Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T15:10:07.7429861Z               "line": 229
2026-06-15T15:10:07.7429966Z             },
2026-06-15T15:10:07.7430077Z             {
2026-06-15T15:10:07.7430224Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T15:10:07.7430324Z               "line": 239
2026-06-15T15:10:07.7430425Z             },
2026-06-15T15:10:07.7430529Z             {
2026-06-15T15:10:07.7430673Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T15:10:07.7430782Z               "line": 249
2026-06-15T15:10:07.7430873Z             }
2026-06-15T15:10:07.7430974Z           ]
2026-06-15T15:10:07.7431073Z         }
2026-06-15T15:10:07.7431167Z       }
2026-06-15T15:10:07.7431271Z     },
2026-06-15T15:10:07.7431368Z     {
2026-06-15T15:10:07.7431514Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-15T15:10:07.7431707Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-15T15:10:07.7431820Z       "requiredStages": [
2026-06-15T15:10:07.7431925Z         "impl",
2026-06-15T15:10:07.7432026Z         "unit"
2026-06-15T15:10:07.7432135Z       ],
2026-06-15T15:10:07.7432230Z       "stages": {
2026-06-15T15:10:07.7432336Z         "doc": {
2026-06-15T15:10:07.7432459Z           "complete": false,
2026-06-15T15:10:07.7432559Z           "evidence": []
2026-06-15T15:10:07.7432660Z         },
2026-06-15T15:10:07.7432760Z         "impl": {
2026-06-15T15:10:07.7432865Z           "complete": true,
2026-06-15T15:10:07.7432970Z           "evidence": [
2026-06-15T15:10:07.7433078Z             {
2026-06-15T15:10:07.7433213Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T15:10:07.7433323Z               "line": 14
2026-06-15T15:10:07.7433436Z             },
2026-06-15T15:10:07.7433555Z             {
2026-06-15T15:10:07.7433696Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T15:10:07.7433805Z               "line": 63
2026-06-15T15:10:07.7433910Z             }
2026-06-15T15:10:07.7434011Z           ]
2026-06-15T15:10:07.7434115Z         },
2026-06-15T15:10:07.7434210Z         "int": {
2026-06-15T15:10:07.7434326Z           "complete": false,
2026-06-15T15:10:07.7434439Z           "evidence": []
2026-06-15T15:10:07.7434545Z         },
2026-06-15T15:10:07.7434645Z         "unit": {
2026-06-15T15:10:07.7434763Z           "complete": true,
2026-06-15T15:10:07.7434865Z           "evidence": [
2026-06-15T15:10:07.7434964Z             {
2026-06-15T15:10:07.7435088Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T15:10:07.7435203Z               "line": 164
2026-06-15T15:10:07.7435412Z             },
2026-06-15T15:10:07.7435513Z             {
2026-06-15T15:10:07.7435651Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T15:10:07.7435761Z               "line": 198
2026-06-15T15:10:07.7435866Z             },
2026-06-15T15:10:07.7435965Z             {
2026-06-15T15:10:07.7436104Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T15:10:07.7436213Z               "line": 220
2026-06-15T15:10:07.7436317Z             }
2026-06-15T15:10:07.7436412Z           ]
2026-06-15T15:10:07.7436512Z         }
2026-06-15T15:10:07.7436610Z       }
2026-06-15T15:10:07.7436715Z     },
2026-06-15T15:10:07.7436901Z     {
2026-06-15T15:10:07.7437029Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-15T15:10:07.7438456Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-15T15:10:07.7438585Z       "requiredStages": [],
2026-06-15T15:10:07.7438686Z       "stages": {
2026-06-15T15:10:07.7438785Z         "doc": {
2026-06-15T15:10:07.7438902Z           "complete": true,
2026-06-15T15:10:07.7439083Z           "evidence": [
2026-06-15T15:10:07.7439182Z             {
2026-06-15T15:10:07.7439320Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7439435Z               "line": 165
2026-06-15T15:10:07.7439539Z             }
2026-06-15T15:10:07.7439659Z           ]
2026-06-15T15:10:07.7439754Z         },
2026-06-15T15:10:07.7439868Z         "impl": {
2026-06-15T15:10:07.7439984Z           "complete": false,
2026-06-15T15:10:07.7440088Z           "evidence": []
2026-06-15T15:10:07.7440187Z         },
2026-06-15T15:10:07.7440294Z         "int": {
2026-06-15T15:10:07.7440417Z           "complete": false,
2026-06-15T15:10:07.7440521Z           "evidence": []
2026-06-15T15:10:07.7440614Z         },
2026-06-15T15:10:07.7440717Z         "unit": {
2026-06-15T15:10:07.7440831Z           "complete": false,
2026-06-15T15:10:07.7440947Z           "evidence": []
2026-06-15T15:10:07.7441046Z         }
2026-06-15T15:10:07.7441142Z       }
2026-06-15T15:10:07.7441243Z     },
2026-06-15T15:10:07.7441346Z     {
2026-06-15T15:10:07.7441490Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-15T15:10:07.7441737Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-15T15:10:07.7441860Z       "requiredStages": [
2026-06-15T15:10:07.7441976Z         "impl",
2026-06-15T15:10:07.7442084Z         "unit"
2026-06-15T15:10:07.7442190Z       ],
2026-06-15T15:10:07.7442290Z       "stages": {
2026-06-15T15:10:07.7442394Z         "doc": {
2026-06-15T15:10:07.7442510Z           "complete": false,
2026-06-15T15:10:07.7442628Z           "evidence": []
2026-06-15T15:10:07.7442728Z         },
2026-06-15T15:10:07.7442829Z         "impl": {
2026-06-15T15:10:07.7442948Z           "complete": true,
2026-06-15T15:10:07.7443057Z           "evidence": [
2026-06-15T15:10:07.7443163Z             {
2026-06-15T15:10:07.7443305Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T15:10:07.7443410Z               "line": 76
2026-06-15T15:10:07.7443516Z             },
2026-06-15T15:10:07.7443620Z             {
2026-06-15T15:10:07.7443768Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T15:10:07.7443883Z               "line": 167
2026-06-15T15:10:07.7443981Z             },
2026-06-15T15:10:07.7444086Z             {
2026-06-15T15:10:07.7444228Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T15:10:07.7444332Z               "line": 233
2026-06-15T15:10:07.7444432Z             },
2026-06-15T15:10:07.7444533Z             {
2026-06-15T15:10:07.7444670Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T15:10:07.7444895Z               "line": 272
2026-06-15T15:10:07.7444999Z             }
2026-06-15T15:10:07.7445100Z           ]
2026-06-15T15:10:07.7445200Z         },
2026-06-15T15:10:07.7445304Z         "int": {
2026-06-15T15:10:07.7445420Z           "complete": false,
2026-06-15T15:10:07.7445534Z           "evidence": []
2026-06-15T15:10:07.7445633Z         },
2026-06-15T15:10:07.7445734Z         "unit": {
2026-06-15T15:10:07.7445853Z           "complete": true,
2026-06-15T15:10:07.7445953Z           "evidence": [
2026-06-15T15:10:07.7446059Z             {
2026-06-15T15:10:07.7446201Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T15:10:07.7446306Z               "line": 321
2026-06-15T15:10:07.7446510Z             },
2026-06-15T15:10:07.7446621Z             {
2026-06-15T15:10:07.7446765Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T15:10:07.7446868Z               "line": 329
2026-06-15T15:10:07.7446963Z             },
2026-06-15T15:10:07.7447068Z             {
2026-06-15T15:10:07.7447218Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T15:10:07.7447328Z               "line": 356
2026-06-15T15:10:07.7447419Z             },
2026-06-15T15:10:07.7447523Z             {
2026-06-15T15:10:07.7447658Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T15:10:07.7447777Z               "line": 395
2026-06-15T15:10:07.7447876Z             },
2026-06-15T15:10:07.7447982Z             {
2026-06-15T15:10:07.7448124Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T15:10:07.7448219Z               "line": 406
2026-06-15T15:10:07.7448321Z             },
2026-06-15T15:10:07.7448420Z             {
2026-06-15T15:10:07.7448568Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T15:10:07.7448677Z               "line": 418
2026-06-15T15:10:07.7448777Z             },
2026-06-15T15:10:07.7448883Z             {
2026-06-15T15:10:07.7449101Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T15:10:07.7449212Z               "line": 442
2026-06-15T15:10:07.7449317Z             }
2026-06-15T15:10:07.7449420Z           ]
2026-06-15T15:10:07.7449520Z         }
2026-06-15T15:10:07.7449625Z       }
2026-06-15T15:10:07.7449718Z     },
2026-06-15T15:10:07.7449822Z     {
2026-06-15T15:10:07.7449957Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-15T15:10:07.7450127Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-15T15:10:07.7450248Z       "requiredStages": [
2026-06-15T15:10:07.7450348Z         "impl",
2026-06-15T15:10:07.7450447Z         "int"
2026-06-15T15:10:07.7450549Z       ],
2026-06-15T15:10:07.7450648Z       "stages": {
2026-06-15T15:10:07.7450748Z         "doc": {
2026-06-15T15:10:07.7450873Z           "complete": false,
2026-06-15T15:10:07.7450986Z           "evidence": []
2026-06-15T15:10:07.7451081Z         },
2026-06-15T15:10:07.7451193Z         "impl": {
2026-06-15T15:10:07.7451311Z           "complete": true,
2026-06-15T15:10:07.7451415Z           "evidence": [
2026-06-15T15:10:07.7451517Z             {
2026-06-15T15:10:07.7451668Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7451779Z               "line": 22
2026-06-15T15:10:07.7451878Z             }
2026-06-15T15:10:07.7451983Z           ]
2026-06-15T15:10:07.7452084Z         },
2026-06-15T15:10:07.7452189Z         "int": {
2026-06-15T15:10:07.7452306Z           "complete": true,
2026-06-15T15:10:07.7452415Z           "evidence": [
2026-06-15T15:10:07.7452517Z             {
2026-06-15T15:10:07.7452668Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-15T15:10:07.7452774Z               "line": 18
2026-06-15T15:10:07.7452879Z             }
2026-06-15T15:10:07.7452987Z           ]
2026-06-15T15:10:07.7453080Z         },
2026-06-15T15:10:07.7453184Z         "unit": {
2026-06-15T15:10:07.7453302Z           "complete": false,
2026-06-15T15:10:07.7453418Z           "evidence": []
2026-06-15T15:10:07.7453522Z         }
2026-06-15T15:10:07.7453622Z       }
2026-06-15T15:10:07.7453724Z     },
2026-06-15T15:10:07.7453951Z     {
2026-06-15T15:10:07.7454095Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-15T15:10:07.7454319Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-15T15:10:07.7454433Z       "requiredStages": [
2026-06-15T15:10:07.7454532Z         "impl",
2026-06-15T15:10:07.7454636Z         "unit"
2026-06-15T15:10:07.7454742Z       ],
2026-06-15T15:10:07.7454845Z       "stages": {
2026-06-15T15:10:07.7454944Z         "doc": {
2026-06-15T15:10:07.7455065Z           "complete": false,
2026-06-15T15:10:07.7455178Z           "evidence": []
2026-06-15T15:10:07.7455269Z         },
2026-06-15T15:10:07.7455370Z         "impl": {
2026-06-15T15:10:07.7455583Z           "complete": true,
2026-06-15T15:10:07.7455699Z           "evidence": [
2026-06-15T15:10:07.7455803Z             {
2026-06-15T15:10:07.7455961Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7456061Z               "line": 415
2026-06-15T15:10:07.7456169Z             },
2026-06-15T15:10:07.7456276Z             {
2026-06-15T15:10:07.7456408Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T15:10:07.7456518Z               "line": 27
2026-06-15T15:10:07.7456624Z             }
2026-06-15T15:10:07.7456728Z           ]
2026-06-15T15:10:07.7456832Z         },
2026-06-15T15:10:07.7456944Z         "int": {
2026-06-15T15:10:07.7457052Z           "complete": false,
2026-06-15T15:10:07.7457147Z           "evidence": []
2026-06-15T15:10:07.7457249Z         },
2026-06-15T15:10:07.7457348Z         "unit": {
2026-06-15T15:10:07.7457466Z           "complete": true,
2026-06-15T15:10:07.7457575Z           "evidence": [
2026-06-15T15:10:07.7457693Z             {
2026-06-15T15:10:07.7457835Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7457946Z               "line": 940
2026-06-15T15:10:07.7458045Z             },
2026-06-15T15:10:07.7458150Z             {
2026-06-15T15:10:07.7458293Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T15:10:07.7458412Z               "line": 181
2026-06-15T15:10:07.7458518Z             }
2026-06-15T15:10:07.7458617Z           ]
2026-06-15T15:10:07.7458712Z         }
2026-06-15T15:10:07.7458818Z       }
2026-06-15T15:10:07.7458914Z     },
2026-06-15T15:10:07.7459099Z     {
2026-06-15T15:10:07.7459243Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-15T15:10:07.7459428Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-15T15:10:07.7459544Z       "requiredStages": [
2026-06-15T15:10:07.7459647Z         "impl",
2026-06-15T15:10:07.7459758Z         "unit"
2026-06-15T15:10:07.7459854Z       ],
2026-06-15T15:10:07.7459961Z       "stages": {
2026-06-15T15:10:07.7460075Z         "doc": {
2026-06-15T15:10:07.7460190Z           "complete": false,
2026-06-15T15:10:07.7460307Z           "evidence": []
2026-06-15T15:10:07.7460412Z         },
2026-06-15T15:10:07.7460512Z         "impl": {
2026-06-15T15:10:07.7460626Z           "complete": true,
2026-06-15T15:10:07.7460746Z           "evidence": [
2026-06-15T15:10:07.7460846Z             {
2026-06-15T15:10:07.7460998Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7461104Z               "line": 73
2026-06-15T15:10:07.7461199Z             },
2026-06-15T15:10:07.7461298Z             {
2026-06-15T15:10:07.7461443Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7461556Z               "line": 955
2026-06-15T15:10:07.7461665Z             },
2026-06-15T15:10:07.7461781Z             {
2026-06-15T15:10:07.7461928Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T15:10:07.7462029Z               "line": 20
2026-06-15T15:10:07.7462138Z             },
2026-06-15T15:10:07.7462228Z             {
2026-06-15T15:10:07.7462373Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T15:10:07.7462485Z               "line": 100
2026-06-15T15:10:07.7462586Z             },
2026-06-15T15:10:07.7462688Z             {
2026-06-15T15:10:07.7462828Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T15:10:07.7463038Z               "line": 555
2026-06-15T15:10:07.7463143Z             },
2026-06-15T15:10:07.7463247Z             {
2026-06-15T15:10:07.7463392Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T15:10:07.7463495Z               "line": 68
2026-06-15T15:10:07.7463596Z             },
2026-06-15T15:10:07.7463701Z             {
2026-06-15T15:10:07.7463844Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T15:10:07.7463944Z               "line": 80
2026-06-15T15:10:07.7464054Z             }
2026-06-15T15:10:07.7464158Z           ]
2026-06-15T15:10:07.7464254Z         },
2026-06-15T15:10:07.7464459Z         "int": {
2026-06-15T15:10:07.7464584Z           "complete": true,
2026-06-15T15:10:07.7464698Z           "evidence": [
2026-06-15T15:10:07.7464797Z             {
2026-06-15T15:10:07.7464942Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T15:10:07.7465059Z               "line": 44
2026-06-15T15:10:07.7465164Z             }
2026-06-15T15:10:07.7465264Z           ]
2026-06-15T15:10:07.7465367Z         },
2026-06-15T15:10:07.7465471Z         "unit": {
2026-06-15T15:10:07.7465586Z           "complete": true,
2026-06-15T15:10:07.7465705Z           "evidence": [
2026-06-15T15:10:07.7465814Z             {
2026-06-15T15:10:07.7465963Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7466077Z               "line": 1155
2026-06-15T15:10:07.7466182Z             },
2026-06-15T15:10:07.7466287Z             {
2026-06-15T15:10:07.7466424Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.7466540Z               "line": 1171
2026-06-15T15:10:07.7466649Z             },
2026-06-15T15:10:07.7466748Z             {
2026-06-15T15:10:07.7466898Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7466997Z               "line": 1488
2026-06-15T15:10:07.7467097Z             },
2026-06-15T15:10:07.7467198Z             {
2026-06-15T15:10:07.7467350Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T15:10:07.7467466Z               "line": 152
2026-06-15T15:10:07.7467570Z             },
2026-06-15T15:10:07.7467675Z             {
2026-06-15T15:10:07.7467814Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T15:10:07.7467927Z               "line": 175
2026-06-15T15:10:07.7468021Z             },
2026-06-15T15:10:07.7468122Z             {
2026-06-15T15:10:07.7468262Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T15:10:07.7468362Z               "line": 186
2026-06-15T15:10:07.7468467Z             },
2026-06-15T15:10:07.7468568Z             {
2026-06-15T15:10:07.7468710Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T15:10:07.7468821Z               "line": 202
2026-06-15T15:10:07.7468925Z             },
2026-06-15T15:10:07.7469121Z             {
2026-06-15T15:10:07.7469263Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T15:10:07.7469378Z               "line": 216
2026-06-15T15:10:07.7469488Z             },
2026-06-15T15:10:07.7469602Z             {
2026-06-15T15:10:07.7469746Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T15:10:07.7469854Z               "line": 137
2026-06-15T15:10:07.7469955Z             },
2026-06-15T15:10:07.7470056Z             {
2026-06-15T15:10:07.7470197Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7470308Z               "line": 6691
2026-06-15T15:10:07.7470414Z             },
2026-06-15T15:10:07.7470512Z             {
2026-06-15T15:10:07.7470645Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T15:10:07.7470764Z               "line": 30
2026-06-15T15:10:07.7470867Z             },
2026-06-15T15:10:07.7470967Z             {
2026-06-15T15:10:07.7471107Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T15:10:07.7471210Z               "line": 73
2026-06-15T15:10:07.7471315Z             }
2026-06-15T15:10:07.7471415Z           ]
2026-06-15T15:10:07.7471515Z         }
2026-06-15T15:10:07.7471711Z       }
2026-06-15T15:10:07.7471816Z     },
2026-06-15T15:10:07.7471906Z     {
2026-06-15T15:10:07.7472031Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-15T15:10:07.7472327Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-15T15:10:07.7472446Z       "requiredStages": [
2026-06-15T15:10:07.7472541Z         "impl",
2026-06-15T15:10:07.7472642Z         "unit"
2026-06-15T15:10:07.7472740Z       ],
2026-06-15T15:10:07.7472846Z       "stages": {
2026-06-15T15:10:07.7472957Z         "doc": {
2026-06-15T15:10:07.7473069Z           "complete": true,
2026-06-15T15:10:07.7473175Z           "evidence": [
2026-06-15T15:10:07.7473379Z             {
2026-06-15T15:10:07.7473517Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7473623Z               "line": 133
2026-06-15T15:10:07.7473727Z             }
2026-06-15T15:10:07.7473827Z           ]
2026-06-15T15:10:07.7473928Z         },
2026-06-15T15:10:07.7474032Z         "impl": {
2026-06-15T15:10:07.7474156Z           "complete": true,
2026-06-15T15:10:07.7474257Z           "evidence": [
2026-06-15T15:10:07.7474370Z             {
2026-06-15T15:10:07.7474509Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T15:10:07.7474619Z               "line": 65
2026-06-15T15:10:07.7474718Z             },
2026-06-15T15:10:07.7474824Z             {
2026-06-15T15:10:07.7474967Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T15:10:07.7475072Z               "line": 17
2026-06-15T15:10:07.7475173Z             },
2026-06-15T15:10:07.7475272Z             {
2026-06-15T15:10:07.7475429Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.7475549Z               "line": 146
2026-06-15T15:10:07.7475653Z             },
2026-06-15T15:10:07.7475747Z             {
2026-06-15T15:10:07.7475890Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.7476007Z               "line": 241
2026-06-15T15:10:07.7476112Z             },
2026-06-15T15:10:07.7476228Z             {
2026-06-15T15:10:07.7476369Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.7476485Z               "line": 340
2026-06-15T15:10:07.7476594Z             },
2026-06-15T15:10:07.7476693Z             {
2026-06-15T15:10:07.7476838Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.7476937Z               "line": 32
2026-06-15T15:10:07.7477038Z             },
2026-06-15T15:10:07.7477138Z             {
2026-06-15T15:10:07.7477266Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7477381Z               "line": 1177
2026-06-15T15:10:07.7477472Z             },
2026-06-15T15:10:07.7477586Z             {
2026-06-15T15:10:07.7477706Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7477815Z               "line": 5312
2026-06-15T15:10:07.7477920Z             },
2026-06-15T15:10:07.7478026Z             {
2026-06-15T15:10:07.7478144Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7478263Z               "line": 5594
2026-06-15T15:10:07.7478365Z             }
2026-06-15T15:10:07.7478468Z           ]
2026-06-15T15:10:07.7478572Z         },
2026-06-15T15:10:07.7478677Z         "int": {
2026-06-15T15:10:07.7478790Z           "complete": false,
2026-06-15T15:10:07.7478903Z           "evidence": []
2026-06-15T15:10:07.7479062Z         },
2026-06-15T15:10:07.7479171Z         "unit": {
2026-06-15T15:10:07.7479284Z           "complete": true,
2026-06-15T15:10:07.7479400Z           "evidence": [
2026-06-15T15:10:07.7479514Z             {
2026-06-15T15:10:07.7479653Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T15:10:07.7479762Z               "line": 94
2026-06-15T15:10:07.7479875Z             },
2026-06-15T15:10:07.7479986Z             {
2026-06-15T15:10:07.7480120Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T15:10:07.7480234Z               "line": 111
2026-06-15T15:10:07.7480334Z             },
2026-06-15T15:10:07.7480438Z             {
2026-06-15T15:10:07.7480673Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T15:10:07.7480792Z               "line": 124
2026-06-15T15:10:07.7480893Z             },
2026-06-15T15:10:07.7480993Z             {
2026-06-15T15:10:07.7481134Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T15:10:07.7481244Z               "line": 134
2026-06-15T15:10:07.7481347Z             },
2026-06-15T15:10:07.7481455Z             {
2026-06-15T15:10:07.7481580Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T15:10:07.7481695Z               "line": 144
2026-06-15T15:10:07.7481789Z             },
2026-06-15T15:10:07.7481890Z             {
2026-06-15T15:10:07.7482033Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T15:10:07.7482253Z               "line": 156
2026-06-15T15:10:07.7482353Z             },
2026-06-15T15:10:07.7482452Z             {
2026-06-15T15:10:07.7482610Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7482719Z               "line": 746
2026-06-15T15:10:07.7482820Z             },
2026-06-15T15:10:07.7482915Z             {
2026-06-15T15:10:07.7483062Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.7483183Z               "line": 309
2026-06-15T15:10:07.7483277Z             }
2026-06-15T15:10:07.7483377Z           ]
2026-06-15T15:10:07.7483474Z         }
2026-06-15T15:10:07.7483578Z       }
2026-06-15T15:10:07.7483682Z     },
2026-06-15T15:10:07.7483784Z     {
2026-06-15T15:10:07.7483912Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-15T15:10:07.7484072Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-15T15:10:07.7484192Z       "requiredStages": [
2026-06-15T15:10:07.7484310Z         "impl",
2026-06-15T15:10:07.7484416Z         "unit"
2026-06-15T15:10:07.7484521Z       ],
2026-06-15T15:10:07.7484630Z       "stages": {
2026-06-15T15:10:07.7484731Z         "doc": {
2026-06-15T15:10:07.7484850Z           "complete": false,
2026-06-15T15:10:07.7484964Z           "evidence": []
2026-06-15T15:10:07.7485070Z         },
2026-06-15T15:10:07.7485169Z         "impl": {
2026-06-15T15:10:07.7485288Z           "complete": true,
2026-06-15T15:10:07.7485389Z           "evidence": [
2026-06-15T15:10:07.7485484Z             {
2026-06-15T15:10:07.7485627Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.7485743Z               "line": 128
2026-06-15T15:10:07.7485846Z             }
2026-06-15T15:10:07.7485946Z           ]
2026-06-15T15:10:07.7486048Z         },
2026-06-15T15:10:07.7486151Z         "int": {
2026-06-15T15:10:07.7486269Z           "complete": false,
2026-06-15T15:10:07.7486370Z           "evidence": []
2026-06-15T15:10:07.7486478Z         },
2026-06-15T15:10:07.7486586Z         "unit": {
2026-06-15T15:10:07.7486706Z           "complete": true,
2026-06-15T15:10:07.7486820Z           "evidence": [
2026-06-15T15:10:07.7486925Z             {
2026-06-15T15:10:07.7487074Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.7487173Z               "line": 205
2026-06-15T15:10:07.7487283Z             }
2026-06-15T15:10:07.7487384Z           ]
2026-06-15T15:10:07.7487483Z         }
2026-06-15T15:10:07.7487588Z       }
2026-06-15T15:10:07.7487693Z     },
2026-06-15T15:10:07.7487798Z     {
2026-06-15T15:10:07.7487937Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-15T15:10:07.7488122Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-15T15:10:07.7488237Z       "requiredStages": [
2026-06-15T15:10:07.7488328Z         "impl",
2026-06-15T15:10:07.7488427Z         "unit"
2026-06-15T15:10:07.7488532Z       ],
2026-06-15T15:10:07.7488643Z       "stages": {
2026-06-15T15:10:07.7488746Z         "doc": {
2026-06-15T15:10:07.7488872Z           "complete": false,
2026-06-15T15:10:07.7489061Z           "evidence": []
2026-06-15T15:10:07.7489165Z         },
2026-06-15T15:10:07.7489271Z         "impl": {
2026-06-15T15:10:07.7489382Z           "complete": true,
2026-06-15T15:10:07.7489496Z           "evidence": [
2026-06-15T15:10:07.7489597Z             {
2026-06-15T15:10:07.7489840Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7489951Z               "line": 272
2026-06-15T15:10:07.7490050Z             },
2026-06-15T15:10:07.7490150Z             {
2026-06-15T15:10:07.7490294Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7490407Z               "line": 283
2026-06-15T15:10:07.7490513Z             },
2026-06-15T15:10:07.7490622Z             {
2026-06-15T15:10:07.7490765Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7490866Z               "line": 301
2026-06-15T15:10:07.7490970Z             }
2026-06-15T15:10:07.7491070Z           ]
2026-06-15T15:10:07.7491280Z         },
2026-06-15T15:10:07.7491380Z         "int": {
2026-06-15T15:10:07.7491501Z           "complete": false,
2026-06-15T15:10:07.7491618Z           "evidence": []
2026-06-15T15:10:07.7491722Z         },
2026-06-15T15:10:07.7491827Z         "unit": {
2026-06-15T15:10:07.7491940Z           "complete": true,
2026-06-15T15:10:07.7492058Z           "evidence": [
2026-06-15T15:10:07.7492159Z             {
2026-06-15T15:10:07.7492293Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7492406Z               "line": 325
2026-06-15T15:10:07.7492503Z             },
2026-06-15T15:10:07.7492607Z             {
2026-06-15T15:10:07.7492746Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7492860Z               "line": 346
2026-06-15T15:10:07.7492960Z             },
2026-06-15T15:10:07.7493061Z             {
2026-06-15T15:10:07.7493203Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7493303Z               "line": 574
2026-06-15T15:10:07.7495988Z             },
2026-06-15T15:10:07.7496116Z             {
2026-06-15T15:10:07.7496283Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7496397Z               "line": 585
2026-06-15T15:10:07.7496506Z             },
2026-06-15T15:10:07.7496603Z             {
2026-06-15T15:10:07.7496754Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7496887Z               "line": 598
2026-06-15T15:10:07.7496987Z             }
2026-06-15T15:10:07.7497085Z           ]
2026-06-15T15:10:07.7497184Z         }
2026-06-15T15:10:07.7497291Z       }
2026-06-15T15:10:07.7497390Z     },
2026-06-15T15:10:07.7497490Z     {
2026-06-15T15:10:07.7497629Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-15T15:10:07.7498301Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-15T15:10:07.7498420Z       "requiredStages": [
2026-06-15T15:10:07.7498521Z         "impl",
2026-06-15T15:10:07.7498625Z         "unit"
2026-06-15T15:10:07.7498725Z       ],
2026-06-15T15:10:07.7498821Z       "stages": {
2026-06-15T15:10:07.7498926Z         "doc": {
2026-06-15T15:10:07.7499127Z           "complete": false,
2026-06-15T15:10:07.7499250Z           "evidence": []
2026-06-15T15:10:07.7499345Z         },
2026-06-15T15:10:07.7499447Z         "impl": {
2026-06-15T15:10:07.7499565Z           "complete": true,
2026-06-15T15:10:07.7499678Z           "evidence": [
2026-06-15T15:10:07.7499778Z             {
2026-06-15T15:10:07.7499938Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7500056Z               "line": 759
2026-06-15T15:10:07.7500158Z             }
2026-06-15T15:10:07.7500253Z           ]
2026-06-15T15:10:07.7500348Z         },
2026-06-15T15:10:07.7500449Z         "int": {
2026-06-15T15:10:07.7500558Z           "complete": false,
2026-06-15T15:10:07.7500667Z           "evidence": []
2026-06-15T15:10:07.7500769Z         },
2026-06-15T15:10:07.7500873Z         "unit": {
2026-06-15T15:10:07.7500987Z           "complete": true,
2026-06-15T15:10:07.7501093Z           "evidence": [
2026-06-15T15:10:07.7501192Z             {
2026-06-15T15:10:07.7501335Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7501587Z               "line": 873
2026-06-15T15:10:07.7501693Z             }
2026-06-15T15:10:07.7501793Z           ]
2026-06-15T15:10:07.7501892Z         }
2026-06-15T15:10:07.7501999Z       }
2026-06-15T15:10:07.7502103Z     },
2026-06-15T15:10:07.7502207Z     {
2026-06-15T15:10:07.7502325Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-15T15:10:07.7502571Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-15T15:10:07.7502691Z       "requiredStages": [
2026-06-15T15:10:07.7502787Z         "impl",
2026-06-15T15:10:07.7502890Z         "unit"
2026-06-15T15:10:07.7502991Z       ],
2026-06-15T15:10:07.7503219Z       "stages": {
2026-06-15T15:10:07.7503321Z         "doc": {
2026-06-15T15:10:07.7503435Z           "complete": false,
2026-06-15T15:10:07.7503548Z           "evidence": []
2026-06-15T15:10:07.7503650Z         },
2026-06-15T15:10:07.7503754Z         "impl": {
2026-06-15T15:10:07.7503863Z           "complete": true,
2026-06-15T15:10:07.7503988Z           "evidence": [
2026-06-15T15:10:07.7504092Z             {
2026-06-15T15:10:07.7504236Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T15:10:07.7504350Z               "line": 14
2026-06-15T15:10:07.7504450Z             },
2026-06-15T15:10:07.7504556Z             {
2026-06-15T15:10:07.7504689Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T15:10:07.7504803Z               "line": 450
2026-06-15T15:10:07.7504909Z             }
2026-06-15T15:10:07.7505008Z           ]
2026-06-15T15:10:07.7505111Z         },
2026-06-15T15:10:07.7505212Z         "int": {
2026-06-15T15:10:07.7505327Z           "complete": false,
2026-06-15T15:10:07.7505450Z           "evidence": []
2026-06-15T15:10:07.7505551Z         },
2026-06-15T15:10:07.7505651Z         "unit": {
2026-06-15T15:10:07.7505764Z           "complete": true,
2026-06-15T15:10:07.7505876Z           "evidence": [
2026-06-15T15:10:07.7505980Z             {
2026-06-15T15:10:07.7506117Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T15:10:07.7506223Z               "line": 130
2026-06-15T15:10:07.7506327Z             },
2026-06-15T15:10:07.7506427Z             {
2026-06-15T15:10:07.7506567Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T15:10:07.7506681Z               "line": 138
2026-06-15T15:10:07.7506776Z             },
2026-06-15T15:10:07.7506877Z             {
2026-06-15T15:10:07.7507009Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T15:10:07.7507124Z               "line": 146
2026-06-15T15:10:07.7507225Z             },
2026-06-15T15:10:07.7507319Z             {
2026-06-15T15:10:07.7507452Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T15:10:07.7507566Z               "line": 154
2026-06-15T15:10:07.7507674Z             },
2026-06-15T15:10:07.7507764Z             {
2026-06-15T15:10:07.7507904Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T15:10:07.7508007Z               "line": 162
2026-06-15T15:10:07.7508108Z             },
2026-06-15T15:10:07.7508213Z             {
2026-06-15T15:10:07.7508336Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T15:10:07.7508452Z               "line": 170
2026-06-15T15:10:07.7508551Z             }
2026-06-15T15:10:07.7508651Z           ]
2026-06-15T15:10:07.7508747Z         }
2026-06-15T15:10:07.7508847Z       }
2026-06-15T15:10:07.7509023Z     },
2026-06-15T15:10:07.7509119Z     {
2026-06-15T15:10:07.7509248Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-15T15:10:07.7510209Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-15T15:10:07.7510338Z       "requiredStages": [
2026-06-15T15:10:07.7510438Z         "impl",
2026-06-15T15:10:07.7510541Z         "unit"
2026-06-15T15:10:07.7510646Z       ],
2026-06-15T15:10:07.7510746Z       "stages": {
2026-06-15T15:10:07.7510975Z         "doc": {
2026-06-15T15:10:07.7511085Z           "complete": false,
2026-06-15T15:10:07.7511189Z           "evidence": []
2026-06-15T15:10:07.7511285Z         },
2026-06-15T15:10:07.7511390Z         "impl": {
2026-06-15T15:10:07.7511508Z           "complete": true,
2026-06-15T15:10:07.7511614Z           "evidence": [
2026-06-15T15:10:07.7511714Z             {
2026-06-15T15:10:07.7511890Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T15:10:07.7512001Z               "line": 34
2026-06-15T15:10:07.7512100Z             }
2026-06-15T15:10:07.7512210Z           ]
2026-06-15T15:10:07.7512306Z         },
2026-06-15T15:10:07.7512515Z         "int": {
2026-06-15T15:10:07.7512636Z           "complete": false,
2026-06-15T15:10:07.7512734Z           "evidence": []
2026-06-15T15:10:07.7512833Z         },
2026-06-15T15:10:07.7512938Z         "unit": {
2026-06-15T15:10:07.7513046Z           "complete": true,
2026-06-15T15:10:07.7513159Z           "evidence": [
2026-06-15T15:10:07.7513265Z             {
2026-06-15T15:10:07.7513432Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T15:10:07.7513532Z               "line": 188
2026-06-15T15:10:07.7513638Z             },
2026-06-15T15:10:07.7513741Z             {
2026-06-15T15:10:07.7513909Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T15:10:07.7514023Z               "line": 200
2026-06-15T15:10:07.7514123Z             },
2026-06-15T15:10:07.7514229Z             {
2026-06-15T15:10:07.7514390Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T15:10:07.7514505Z               "line": 211
2026-06-15T15:10:07.7514605Z             },
2026-06-15T15:10:07.7514705Z             {
2026-06-15T15:10:07.7514868Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T15:10:07.7514967Z               "line": 253
2026-06-15T15:10:07.7515072Z             },
2026-06-15T15:10:07.7515174Z             {
2026-06-15T15:10:07.7515339Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T15:10:07.7515445Z               "line": 277
2026-06-15T15:10:07.7515540Z             },
2026-06-15T15:10:07.7515648Z             {
2026-06-15T15:10:07.7515806Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T15:10:07.7515916Z               "line": 300
2026-06-15T15:10:07.7516019Z             },
2026-06-15T15:10:07.7516116Z             {
2026-06-15T15:10:07.7516273Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T15:10:07.7516387Z               "line": 316
2026-06-15T15:10:07.7516488Z             }
2026-06-15T15:10:07.7516597Z           ]
2026-06-15T15:10:07.7516707Z         }
2026-06-15T15:10:07.7516807Z       }
2026-06-15T15:10:07.7516907Z     },
2026-06-15T15:10:07.7516997Z     {
2026-06-15T15:10:07.7517122Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-15T15:10:07.7517694Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-15T15:10:07.7517818Z       "requiredStages": [
2026-06-15T15:10:07.7517917Z         "impl",
2026-06-15T15:10:07.7518017Z         "unit"
2026-06-15T15:10:07.7518121Z       ],
2026-06-15T15:10:07.7518219Z       "stages": {
2026-06-15T15:10:07.7518319Z         "doc": {
2026-06-15T15:10:07.7518439Z           "complete": false,
2026-06-15T15:10:07.7518539Z           "evidence": []
2026-06-15T15:10:07.7518634Z         },
2026-06-15T15:10:07.7518750Z         "impl": {
2026-06-15T15:10:07.7518863Z           "complete": true,
2026-06-15T15:10:07.7519069Z           "evidence": [
2026-06-15T15:10:07.7519168Z             {
2026-06-15T15:10:07.7519317Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7519421Z               "line": 29
2026-06-15T15:10:07.7519530Z             },
2026-06-15T15:10:07.7519627Z             {
2026-06-15T15:10:07.7519888Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7520004Z               "line": 174
2026-06-15T15:10:07.7520102Z             },
2026-06-15T15:10:07.7520198Z             {
2026-06-15T15:10:07.7520343Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7520466Z               "line": 194
2026-06-15T15:10:07.7520567Z             },
2026-06-15T15:10:07.7520667Z             {
2026-06-15T15:10:07.7520808Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7520908Z               "line": 222
2026-06-15T15:10:07.7521012Z             }
2026-06-15T15:10:07.7521106Z           ]
2026-06-15T15:10:07.7521211Z         },
2026-06-15T15:10:07.7521434Z         "int": {
2026-06-15T15:10:07.7521554Z           "complete": false,
2026-06-15T15:10:07.7521664Z           "evidence": []
2026-06-15T15:10:07.7521763Z         },
2026-06-15T15:10:07.7521865Z         "unit": {
2026-06-15T15:10:07.7521974Z           "complete": true,
2026-06-15T15:10:07.7522092Z           "evidence": [
2026-06-15T15:10:07.7522198Z             {
2026-06-15T15:10:07.7522336Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7522446Z               "line": 329
2026-06-15T15:10:07.7522547Z             },
2026-06-15T15:10:07.7522650Z             {
2026-06-15T15:10:07.7522789Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7522909Z               "line": 344
2026-06-15T15:10:07.7523013Z             },
2026-06-15T15:10:07.7523114Z             {
2026-06-15T15:10:07.7523256Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7523365Z               "line": 417
2026-06-15T15:10:07.7523474Z             },
2026-06-15T15:10:07.7523578Z             {
2026-06-15T15:10:07.7523715Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7523830Z               "line": 433
2026-06-15T15:10:07.7523935Z             },
2026-06-15T15:10:07.7524035Z             {
2026-06-15T15:10:07.7524174Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7524283Z               "line": 492
2026-06-15T15:10:07.7524378Z             },
2026-06-15T15:10:07.7524484Z             {
2026-06-15T15:10:07.7524626Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7524736Z               "line": 506
2026-06-15T15:10:07.7524836Z             },
2026-06-15T15:10:07.7524931Z             {
2026-06-15T15:10:07.7525070Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7525175Z               "line": 517
2026-06-15T15:10:07.7525284Z             },
2026-06-15T15:10:07.7525385Z             {
2026-06-15T15:10:07.7525522Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7525642Z               "line": 528
2026-06-15T15:10:07.7525744Z             }
2026-06-15T15:10:07.7525846Z           ]
2026-06-15T15:10:07.7525952Z         }
2026-06-15T15:10:07.7526053Z       }
2026-06-15T15:10:07.7526152Z     },
2026-06-15T15:10:07.7526246Z     {
2026-06-15T15:10:07.7526395Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-15T15:10:07.7527096Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-15T15:10:07.7527219Z       "requiredStages": [
2026-06-15T15:10:07.7527320Z         "impl",
2026-06-15T15:10:07.7527420Z         "unit"
2026-06-15T15:10:07.7527514Z       ],
2026-06-15T15:10:07.7527625Z       "stages": {
2026-06-15T15:10:07.7527734Z         "doc": {
2026-06-15T15:10:07.7527844Z           "complete": false,
2026-06-15T15:10:07.7527955Z           "evidence": []
2026-06-15T15:10:07.7528059Z         },
2026-06-15T15:10:07.7528168Z         "impl": {
2026-06-15T15:10:07.7528284Z           "complete": true,
2026-06-15T15:10:07.7528401Z           "evidence": [
2026-06-15T15:10:07.7528501Z             {
2026-06-15T15:10:07.7528658Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.7528851Z               "line": 27
2026-06-15T15:10:07.7529038Z             },
2026-06-15T15:10:07.7529137Z             {
2026-06-15T15:10:07.7529291Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.7529390Z               "line": 110
2026-06-15T15:10:07.7529494Z             },
2026-06-15T15:10:07.7529596Z             {
2026-06-15T15:10:07.7529757Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.7529868Z               "line": 153
2026-06-15T15:10:07.7529968Z             },
2026-06-15T15:10:07.7530063Z             {
2026-06-15T15:10:07.7530225Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.7530439Z               "line": 182
2026-06-15T15:10:07.7530535Z             },
2026-06-15T15:10:07.7530644Z             {
2026-06-15T15:10:07.7530822Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T15:10:07.7530921Z               "line": 31
2026-06-15T15:10:07.7531026Z             },
2026-06-15T15:10:07.7531127Z             {
2026-06-15T15:10:07.7531292Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T15:10:07.7531406Z               "line": 113
2026-06-15T15:10:07.7531501Z             },
2026-06-15T15:10:07.7531609Z             {
2026-06-15T15:10:07.7531766Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T15:10:07.7531867Z               "line": 138
2026-06-15T15:10:07.7531967Z             }
2026-06-15T15:10:07.7532062Z           ]
2026-06-15T15:10:07.7532163Z         },
2026-06-15T15:10:07.7532267Z         "int": {
2026-06-15T15:10:07.7532386Z           "complete": false,
2026-06-15T15:10:07.7532506Z           "evidence": []
2026-06-15T15:10:07.7532606Z         },
2026-06-15T15:10:07.7532701Z         "unit": {
2026-06-15T15:10:07.7532816Z           "complete": true,
2026-06-15T15:10:07.7532935Z           "evidence": [
2026-06-15T15:10:07.7533030Z             {
2026-06-15T15:10:07.7533182Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.7533287Z               "line": 261
2026-06-15T15:10:07.7533384Z             },
2026-06-15T15:10:07.7533483Z             {
2026-06-15T15:10:07.7533630Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.7533741Z               "line": 276
2026-06-15T15:10:07.7533840Z             },
2026-06-15T15:10:07.7533949Z             {
2026-06-15T15:10:07.7534097Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.7534209Z               "line": 293
2026-06-15T15:10:07.7534308Z             },
2026-06-15T15:10:07.7534405Z             {
2026-06-15T15:10:07.7534566Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.7534676Z               "line": 310
2026-06-15T15:10:07.7534786Z             },
2026-06-15T15:10:07.7534885Z             {
2026-06-15T15:10:07.7535035Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.7535149Z               "line": 327
2026-06-15T15:10:07.7535253Z             },
2026-06-15T15:10:07.7535354Z             {
2026-06-15T15:10:07.7535501Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.7535606Z               "line": 366
2026-06-15T15:10:07.7535707Z             },
2026-06-15T15:10:07.7535811Z             {
2026-06-15T15:10:07.7535974Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T15:10:07.7536082Z               "line": 179
2026-06-15T15:10:07.7536197Z             },
2026-06-15T15:10:07.7536299Z             {
2026-06-15T15:10:07.7536459Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T15:10:07.7536575Z               "line": 194
2026-06-15T15:10:07.7536675Z             },
2026-06-15T15:10:07.7536778Z             {
2026-06-15T15:10:07.7536936Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T15:10:07.7537050Z               "line": 204
2026-06-15T15:10:07.7537145Z             },
2026-06-15T15:10:07.7537360Z             {
2026-06-15T15:10:07.7537532Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T15:10:07.7537646Z               "line": 259
2026-06-15T15:10:07.7537750Z             },
2026-06-15T15:10:07.7537851Z             {
2026-06-15T15:10:07.7538023Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T15:10:07.7538127Z               "line": 269
2026-06-15T15:10:07.7538233Z             },
2026-06-15T15:10:07.7538332Z             {
2026-06-15T15:10:07.7538495Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T15:10:07.7538605Z               "line": 283
2026-06-15T15:10:07.7538771Z             }
2026-06-15T15:10:07.7538877Z           ]
2026-06-15T15:10:07.7539061Z         }
2026-06-15T15:10:07.7539171Z       }
2026-06-15T15:10:07.7539269Z     },
2026-06-15T15:10:07.7539373Z     {
2026-06-15T15:10:07.7539516Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-15T15:10:07.7539735Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-15T15:10:07.7539856Z       "requiredStages": [],
2026-06-15T15:10:07.7539955Z       "stages": {
2026-06-15T15:10:07.7540064Z         "doc": {
2026-06-15T15:10:07.7540175Z           "complete": false,
2026-06-15T15:10:07.7540288Z           "evidence": []
2026-06-15T15:10:07.7540389Z         },
2026-06-15T15:10:07.7540490Z         "impl": {
2026-06-15T15:10:07.7540603Z           "complete": false,
2026-06-15T15:10:07.7540708Z           "evidence": []
2026-06-15T15:10:07.7540814Z         },
2026-06-15T15:10:07.7540909Z         "int": {
2026-06-15T15:10:07.7541028Z           "complete": false,
2026-06-15T15:10:07.7541148Z           "evidence": []
2026-06-15T15:10:07.7541252Z         },
2026-06-15T15:10:07.7541353Z         "unit": {
2026-06-15T15:10:07.7541458Z           "complete": false,
2026-06-15T15:10:07.7541571Z           "evidence": []
2026-06-15T15:10:07.7541668Z         }
2026-06-15T15:10:07.7541773Z       }
2026-06-15T15:10:07.7541876Z     },
2026-06-15T15:10:07.7541980Z     {
2026-06-15T15:10:07.7542127Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-15T15:10:07.7543000Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-15T15:10:07.7543128Z       "requiredStages": [
2026-06-15T15:10:07.7543236Z         "impl",
2026-06-15T15:10:07.7543333Z         "unit"
2026-06-15T15:10:07.7543433Z       ],
2026-06-15T15:10:07.7543532Z       "stages": {
2026-06-15T15:10:07.7543648Z         "doc": {
2026-06-15T15:10:07.7543757Z           "complete": false,
2026-06-15T15:10:07.7543871Z           "evidence": []
2026-06-15T15:10:07.7543972Z         },
2026-06-15T15:10:07.7544072Z         "impl": {
2026-06-15T15:10:07.7544190Z           "complete": true,
2026-06-15T15:10:07.7544301Z           "evidence": [
2026-06-15T15:10:07.7544396Z             {
2026-06-15T15:10:07.7544551Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T15:10:07.7544671Z               "line": 26
2026-06-15T15:10:07.7544774Z             },
2026-06-15T15:10:07.7544878Z             {
2026-06-15T15:10:07.7545033Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T15:10:07.7545136Z               "line": 95
2026-06-15T15:10:07.7545241Z             },
2026-06-15T15:10:07.7545346Z             {
2026-06-15T15:10:07.7545494Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T15:10:07.7545614Z               "line": 166
2026-06-15T15:10:07.7545709Z             },
2026-06-15T15:10:07.7545823Z             {
2026-06-15T15:10:07.7545975Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T15:10:07.7546089Z               "line": 19
2026-06-15T15:10:07.7546191Z             },
2026-06-15T15:10:07.7546290Z             {
2026-06-15T15:10:07.7546438Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T15:10:07.7546661Z               "line": 50
2026-06-15T15:10:07.7546767Z             },
2026-06-15T15:10:07.7546868Z             {
2026-06-15T15:10:07.7547005Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T15:10:07.7547116Z               "line": 18
2026-06-15T15:10:07.7547221Z             },
2026-06-15T15:10:07.7547319Z             {
2026-06-15T15:10:07.7547457Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T15:10:07.7547573Z               "line": 71
2026-06-15T15:10:07.7547681Z             },
2026-06-15T15:10:07.7547782Z             {
2026-06-15T15:10:07.7547925Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.7548135Z               "line": 79
2026-06-15T15:10:07.7548230Z             }
2026-06-15T15:10:07.7548334Z           ]
2026-06-15T15:10:07.7548435Z         },
2026-06-15T15:10:07.7548535Z         "int": {
2026-06-15T15:10:07.7548658Z           "complete": false,
2026-06-15T15:10:07.7548760Z           "evidence": []
2026-06-15T15:10:07.7548864Z         },
2026-06-15T15:10:07.7549026Z         "unit": {
2026-06-15T15:10:07.7549141Z           "complete": true,
2026-06-15T15:10:07.7549255Z           "evidence": [
2026-06-15T15:10:07.7549350Z             {
2026-06-15T15:10:07.7549498Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T15:10:07.7549607Z               "line": 289
2026-06-15T15:10:07.7549706Z             },
2026-06-15T15:10:07.7549806Z             {
2026-06-15T15:10:07.7549947Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T15:10:07.7550063Z               "line": 314
2026-06-15T15:10:07.7550168Z             },
2026-06-15T15:10:07.7550267Z             {
2026-06-15T15:10:07.7550425Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T15:10:07.7550529Z               "line": 350
2026-06-15T15:10:07.7550629Z             },
2026-06-15T15:10:07.7550730Z             {
2026-06-15T15:10:07.7550877Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T15:10:07.7550978Z               "line": 418
2026-06-15T15:10:07.7551078Z             },
2026-06-15T15:10:07.7551187Z             {
2026-06-15T15:10:07.7551327Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T15:10:07.7551440Z               "line": 429
2026-06-15T15:10:07.7551536Z             },
2026-06-15T15:10:07.7551632Z             {
2026-06-15T15:10:07.7551778Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T15:10:07.7551883Z               "line": 460
2026-06-15T15:10:07.7551990Z             },
2026-06-15T15:10:07.7552083Z             {
2026-06-15T15:10:07.7552233Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T15:10:07.7552356Z               "line": 471
2026-06-15T15:10:07.7552455Z             },
2026-06-15T15:10:07.7552555Z             {
2026-06-15T15:10:07.7552697Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T15:10:07.7552810Z               "line": 77
2026-06-15T15:10:07.7552905Z             },
2026-06-15T15:10:07.7553016Z             {
2026-06-15T15:10:07.7553157Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T15:10:07.7553273Z               "line": 97
2026-06-15T15:10:07.7553373Z             },
2026-06-15T15:10:07.7553477Z             {
2026-06-15T15:10:07.7553626Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T15:10:07.7553726Z               "line": 112
2026-06-15T15:10:07.7553826Z             },
2026-06-15T15:10:07.7553931Z             {
2026-06-15T15:10:07.7554074Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T15:10:07.7554179Z               "line": 123
2026-06-15T15:10:07.7554284Z             },
2026-06-15T15:10:07.7554398Z             {
2026-06-15T15:10:07.7554542Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T15:10:07.7554660Z               "line": 130
2026-06-15T15:10:07.7554760Z             },
2026-06-15T15:10:07.7554862Z             {
2026-06-15T15:10:07.7554998Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T15:10:07.7555226Z               "line": 145
2026-06-15T15:10:07.7555339Z             },
2026-06-15T15:10:07.7555438Z             {
2026-06-15T15:10:07.7555578Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T15:10:07.7555691Z               "line": 115
2026-06-15T15:10:07.7555792Z             },
2026-06-15T15:10:07.7555888Z             {
2026-06-15T15:10:07.7556025Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T15:10:07.7556140Z               "line": 130
2026-06-15T15:10:07.7556245Z             },
2026-06-15T15:10:07.7556349Z             {
2026-06-15T15:10:07.7556479Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.7556693Z               "line": 420
2026-06-15T15:10:07.7556808Z             }
2026-06-15T15:10:07.7556913Z           ]
2026-06-15T15:10:07.7557022Z         }
2026-06-15T15:10:07.7557118Z       }
2026-06-15T15:10:07.7557221Z     },
2026-06-15T15:10:07.7557322Z     {
2026-06-15T15:10:07.7557462Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-15T15:10:07.7558347Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-15T15:10:07.7558476Z       "requiredStages": [
2026-06-15T15:10:07.7558580Z         "doc",
2026-06-15T15:10:07.7558676Z         "impl",
2026-06-15T15:10:07.7558780Z         "unit"
2026-06-15T15:10:07.7558880Z       ],
2026-06-15T15:10:07.7559053Z       "stages": {
2026-06-15T15:10:07.7559153Z         "doc": {
2026-06-15T15:10:07.7559266Z           "complete": true,
2026-06-15T15:10:07.7559387Z           "evidence": [
2026-06-15T15:10:07.7559482Z             {
2026-06-15T15:10:07.7559621Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7559730Z               "line": 367
2026-06-15T15:10:07.7559834Z             }
2026-06-15T15:10:07.7559954Z           ]
2026-06-15T15:10:07.7560063Z         },
2026-06-15T15:10:07.7560177Z         "impl": {
2026-06-15T15:10:07.7560291Z           "complete": true,
2026-06-15T15:10:07.7560399Z           "evidence": [
2026-06-15T15:10:07.7560498Z             {
2026-06-15T15:10:07.7560651Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7560751Z               "line": 199
2026-06-15T15:10:07.7560851Z             },
2026-06-15T15:10:07.7560952Z             {
2026-06-15T15:10:07.7561099Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7561204Z               "line": 303
2026-06-15T15:10:07.7561305Z             },
2026-06-15T15:10:07.7561409Z             {
2026-06-15T15:10:07.7561563Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7561667Z               "line": 515
2026-06-15T15:10:07.7561776Z             },
2026-06-15T15:10:07.7561882Z             {
2026-06-15T15:10:07.7562025Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7562138Z               "line": 530
2026-06-15T15:10:07.7562245Z             },
2026-06-15T15:10:07.7562358Z             {
2026-06-15T15:10:07.7562492Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7562611Z               "line": 1127
2026-06-15T15:10:07.7562711Z             },
2026-06-15T15:10:07.7562817Z             {
2026-06-15T15:10:07.7562949Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7563058Z               "line": 443
2026-06-15T15:10:07.7563158Z             },
2026-06-15T15:10:07.7563261Z             {
2026-06-15T15:10:07.7563403Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7563514Z               "line": 590
2026-06-15T15:10:07.7563618Z             },
2026-06-15T15:10:07.7563718Z             {
2026-06-15T15:10:07.7563862Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7563975Z               "line": 731
2026-06-15T15:10:07.7564071Z             }
2026-06-15T15:10:07.7564172Z           ]
2026-06-15T15:10:07.7564376Z         },
2026-06-15T15:10:07.7564486Z         "int": {
2026-06-15T15:10:07.7564605Z           "complete": false,
2026-06-15T15:10:07.7564720Z           "evidence": []
2026-06-15T15:10:07.7564820Z         },
2026-06-15T15:10:07.7564920Z         "unit": {
2026-06-15T15:10:07.7565035Z           "complete": true,
2026-06-15T15:10:07.7565145Z           "evidence": [
2026-06-15T15:10:07.7565253Z             {
2026-06-15T15:10:07.7565388Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7565497Z               "line": 1155
2026-06-15T15:10:07.7565605Z             },
2026-06-15T15:10:07.7565705Z             {
2026-06-15T15:10:07.7565970Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-15T15:10:07.7566080Z               "line": 30
2026-06-15T15:10:07.7566181Z             }
2026-06-15T15:10:07.7566284Z           ]
2026-06-15T15:10:07.7566386Z         }
2026-06-15T15:10:07.7566486Z       }
2026-06-15T15:10:07.7566580Z     },
2026-06-15T15:10:07.7566700Z     {
2026-06-15T15:10:07.7566843Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-15T15:10:07.7567129Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-15T15:10:07.7567248Z       "requiredStages": [
2026-06-15T15:10:07.7567349Z         "impl",
2026-06-15T15:10:07.7567444Z         "unit"
2026-06-15T15:10:07.7567543Z       ],
2026-06-15T15:10:07.7567650Z       "stages": {
2026-06-15T15:10:07.7567749Z         "doc": {
2026-06-15T15:10:07.7567868Z           "complete": true,
2026-06-15T15:10:07.7567984Z           "evidence": [
2026-06-15T15:10:07.7568087Z             {
2026-06-15T15:10:07.7568231Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7568332Z               "line": 139
2026-06-15T15:10:07.7568440Z             }
2026-06-15T15:10:07.7568544Z           ]
2026-06-15T15:10:07.7568650Z         },
2026-06-15T15:10:07.7568759Z         "impl": {
2026-06-15T15:10:07.7568864Z           "complete": true,
2026-06-15T15:10:07.7569065Z           "evidence": [
2026-06-15T15:10:07.7569168Z             {
2026-06-15T15:10:07.7569313Z               "path": "crates/spt-store/src/db.rs",
2026-06-15T15:10:07.7569417Z               "line": 29
2026-06-15T15:10:07.7569517Z             },
2026-06-15T15:10:07.7569622Z             {
2026-06-15T15:10:07.7569755Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.7569866Z               "line": 101
2026-06-15T15:10:07.7569966Z             },
2026-06-15T15:10:07.7570065Z             {
2026-06-15T15:10:07.7570204Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7570323Z               "line": 30
2026-06-15T15:10:07.7570437Z             },
2026-06-15T15:10:07.7570539Z             {
2026-06-15T15:10:07.7570675Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7570783Z               "line": 48
2026-06-15T15:10:07.7570884Z             }
2026-06-15T15:10:07.7570987Z           ]
2026-06-15T15:10:07.7571096Z         },
2026-06-15T15:10:07.7571192Z         "int": {
2026-06-15T15:10:07.7571307Z           "complete": false,
2026-06-15T15:10:07.7571420Z           "evidence": []
2026-06-15T15:10:07.7571522Z         },
2026-06-15T15:10:07.7571631Z         "unit": {
2026-06-15T15:10:07.7571745Z           "complete": true,
2026-06-15T15:10:07.7571856Z           "evidence": [
2026-06-15T15:10:07.7571955Z             {
2026-06-15T15:10:07.7572099Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7572217Z               "line": 162
2026-06-15T15:10:07.7572317Z             }
2026-06-15T15:10:07.7572418Z           ]
2026-06-15T15:10:07.7572518Z         }
2026-06-15T15:10:07.7572632Z       }
2026-06-15T15:10:07.7572738Z     },
2026-06-15T15:10:07.7572842Z     {
2026-06-15T15:10:07.7572985Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-15T15:10:07.7573391Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-15T15:10:07.7573623Z       "requiredStages": [
2026-06-15T15:10:07.7573723Z         "doc",
2026-06-15T15:10:07.7573831Z         "impl",
2026-06-15T15:10:07.7573930Z         "unit"
2026-06-15T15:10:07.7574035Z       ],
2026-06-15T15:10:07.7574151Z       "stages": {
2026-06-15T15:10:07.7574250Z         "doc": {
2026-06-15T15:10:07.7574365Z           "complete": true,
2026-06-15T15:10:07.7574475Z           "evidence": [
2026-06-15T15:10:07.7574574Z             {
2026-06-15T15:10:07.7574704Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7574818Z               "line": 151
2026-06-15T15:10:07.7574917Z             }
2026-06-15T15:10:07.7575014Z           ]
2026-06-15T15:10:07.7575208Z         },
2026-06-15T15:10:07.7575309Z         "impl": {
2026-06-15T15:10:07.7575437Z           "complete": true,
2026-06-15T15:10:07.7575552Z           "evidence": [
2026-06-15T15:10:07.7575648Z             {
2026-06-15T15:10:07.7575799Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7575915Z               "line": 22
2026-06-15T15:10:07.7576015Z             }
2026-06-15T15:10:07.7578628Z           ]
2026-06-15T15:10:07.7578777Z         },
2026-06-15T15:10:07.7578892Z         "int": {
2026-06-15T15:10:07.7579104Z           "complete": false,
2026-06-15T15:10:07.7579225Z           "evidence": []
2026-06-15T15:10:07.7579329Z         },
2026-06-15T15:10:07.7579429Z         "unit": {
2026-06-15T15:10:07.7579544Z           "complete": true,
2026-06-15T15:10:07.7579662Z           "evidence": [
2026-06-15T15:10:07.7579758Z             {
2026-06-15T15:10:07.7579915Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7580033Z               "line": 298
2026-06-15T15:10:07.7580149Z             }
2026-06-15T15:10:07.7580249Z           ]
2026-06-15T15:10:07.7580353Z         }
2026-06-15T15:10:07.7580455Z       }
2026-06-15T15:10:07.7580554Z     },
2026-06-15T15:10:07.7580654Z     {
2026-06-15T15:10:07.7580788Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-15T15:10:07.7581292Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-15T15:10:07.7581411Z       "requiredStages": [
2026-06-15T15:10:07.7581515Z         "impl",
2026-06-15T15:10:07.7581619Z         "unit"
2026-06-15T15:10:07.7581719Z       ],
2026-06-15T15:10:07.7581820Z       "stages": {
2026-06-15T15:10:07.7581923Z         "doc": {
2026-06-15T15:10:07.7582029Z           "complete": true,
2026-06-15T15:10:07.7582134Z           "evidence": [
2026-06-15T15:10:07.7582233Z             {
2026-06-15T15:10:07.7582378Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7582497Z               "line": 145
2026-06-15T15:10:07.7582596Z             }
2026-06-15T15:10:07.7582697Z           ]
2026-06-15T15:10:07.7582796Z         },
2026-06-15T15:10:07.7582901Z         "impl": {
2026-06-15T15:10:07.7583021Z           "complete": true,
2026-06-15T15:10:07.7583120Z           "evidence": [
2026-06-15T15:10:07.7583220Z             {
2026-06-15T15:10:07.7583379Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T15:10:07.7583483Z               "line": 160
2026-06-15T15:10:07.7583583Z             },
2026-06-15T15:10:07.7583684Z             {
2026-06-15T15:10:07.7583845Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7583952Z               "line": 200
2026-06-15T15:10:07.7584051Z             },
2026-06-15T15:10:07.7584150Z             {
2026-06-15T15:10:07.7584302Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7584406Z               "line": 298
2026-06-15T15:10:07.7584500Z             },
2026-06-15T15:10:07.7584605Z             {
2026-06-15T15:10:07.7584739Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T15:10:07.7584853Z               "line": 20
2026-06-15T15:10:07.7584954Z             }
2026-06-15T15:10:07.7585059Z           ]
2026-06-15T15:10:07.7585158Z         },
2026-06-15T15:10:07.7585259Z         "int": {
2026-06-15T15:10:07.7585516Z           "complete": false,
2026-06-15T15:10:07.7585617Z           "evidence": []
2026-06-15T15:10:07.7585726Z         },
2026-06-15T15:10:07.7585830Z         "unit": {
2026-06-15T15:10:07.7585946Z           "complete": true,
2026-06-15T15:10:07.7586064Z           "evidence": [
2026-06-15T15:10:07.7586170Z             {
2026-06-15T15:10:07.7586326Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7586436Z               "line": 885
2026-06-15T15:10:07.7586538Z             },
2026-06-15T15:10:07.7586641Z             {
2026-06-15T15:10:07.7586802Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T15:10:07.7587005Z               "line": 88
2026-06-15T15:10:07.7587114Z             },
2026-06-15T15:10:07.7587215Z             {
2026-06-15T15:10:07.7587367Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7587482Z               "line": 819
2026-06-15T15:10:07.7587582Z             },
2026-06-15T15:10:07.7587677Z             {
2026-06-15T15:10:07.7587821Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7587935Z               "line": 838
2026-06-15T15:10:07.7588044Z             },
2026-06-15T15:10:07.7588136Z             {
2026-06-15T15:10:07.7588292Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T15:10:07.7588397Z               "line": 279
2026-06-15T15:10:07.7588502Z             },
2026-06-15T15:10:07.7588617Z             {
2026-06-15T15:10:07.7588766Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T15:10:07.7588864Z               "line": 82
2026-06-15T15:10:07.7589047Z             },
2026-06-15T15:10:07.7589151Z             {
2026-06-15T15:10:07.7589294Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T15:10:07.7589410Z               "line": 99
2026-06-15T15:10:07.7589508Z             },
2026-06-15T15:10:07.7589612Z             {
2026-06-15T15:10:07.7589751Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T15:10:07.7589870Z               "line": 119
2026-06-15T15:10:07.7589974Z             }
2026-06-15T15:10:07.7590075Z           ]
2026-06-15T15:10:07.7590171Z         }
2026-06-15T15:10:07.7590265Z       }
2026-06-15T15:10:07.7590367Z     },
2026-06-15T15:10:07.7590466Z     {
2026-06-15T15:10:07.7590603Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-15T15:10:07.7591952Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-15T15:10:07.7592075Z       "requiredStages": [
2026-06-15T15:10:07.7592174Z         "doc",
2026-06-15T15:10:07.7592279Z         "impl",
2026-06-15T15:10:07.7592385Z         "unit"
2026-06-15T15:10:07.7592488Z       ],
2026-06-15T15:10:07.7592589Z       "stages": {
2026-06-15T15:10:07.7592694Z         "doc": {
2026-06-15T15:10:07.7592803Z           "complete": true,
2026-06-15T15:10:07.7592899Z           "evidence": [
2026-06-15T15:10:07.7593000Z             {
2026-06-15T15:10:07.7593132Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7593248Z               "line": 157
2026-06-15T15:10:07.7593347Z             }
2026-06-15T15:10:07.7593447Z           ]
2026-06-15T15:10:07.7593543Z         },
2026-06-15T15:10:07.7593652Z         "impl": {
2026-06-15T15:10:07.7593766Z           "complete": true,
2026-06-15T15:10:07.7593915Z           "evidence": [
2026-06-15T15:10:07.7594028Z             {
2026-06-15T15:10:07.7594178Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T15:10:07.7594296Z               "line": 137
2026-06-15T15:10:07.7594401Z             },
2026-06-15T15:10:07.7594507Z             {
2026-06-15T15:10:07.7594663Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7594900Z               "line": 512
2026-06-15T15:10:07.7595012Z             },
2026-06-15T15:10:07.7595112Z             {
2026-06-15T15:10:07.7595281Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7595394Z               "line": 519
2026-06-15T15:10:07.7595495Z             },
2026-06-15T15:10:07.7595595Z             {
2026-06-15T15:10:07.7595742Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7595843Z               "line": 227
2026-06-15T15:10:07.7595948Z             }
2026-06-15T15:10:07.7596052Z           ]
2026-06-15T15:10:07.7596153Z         },
2026-06-15T15:10:07.7596352Z         "int": {
2026-06-15T15:10:07.7596478Z           "complete": false,
2026-06-15T15:10:07.7596590Z           "evidence": []
2026-06-15T15:10:07.7596701Z         },
2026-06-15T15:10:07.7596802Z         "unit": {
2026-06-15T15:10:07.7596914Z           "complete": true,
2026-06-15T15:10:07.7597025Z           "evidence": [
2026-06-15T15:10:07.7597140Z             {
2026-06-15T15:10:07.7597300Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7597400Z               "line": 1515
2026-06-15T15:10:07.7597509Z             },
2026-06-15T15:10:07.7597608Z             {
2026-06-15T15:10:07.7597766Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7597899Z               "line": 1573
2026-06-15T15:10:07.7597999Z             },
2026-06-15T15:10:07.7598099Z             {
2026-06-15T15:10:07.7598256Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7598362Z               "line": 851
2026-06-15T15:10:07.7598466Z             }
2026-06-15T15:10:07.7598566Z           ]
2026-06-15T15:10:07.7598667Z         }
2026-06-15T15:10:07.7598767Z       }
2026-06-15T15:10:07.7598866Z     },
2026-06-15T15:10:07.7599049Z     {
2026-06-15T15:10:07.7599195Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-15T15:10:07.7599420Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-15T15:10:07.7599549Z       "requiredStages": [
2026-06-15T15:10:07.7599650Z         "impl",
2026-06-15T15:10:07.7599748Z         "unit"
2026-06-15T15:10:07.7599839Z       ],
2026-06-15T15:10:07.7599941Z       "stages": {
2026-06-15T15:10:07.7600045Z         "doc": {
2026-06-15T15:10:07.7600153Z           "complete": false,
2026-06-15T15:10:07.7600272Z           "evidence": []
2026-06-15T15:10:07.7600374Z         },
2026-06-15T15:10:07.7600472Z         "impl": {
2026-06-15T15:10:07.7600587Z           "complete": true,
2026-06-15T15:10:07.7600688Z           "evidence": [
2026-06-15T15:10:07.7600792Z             {
2026-06-15T15:10:07.7600932Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T15:10:07.7601041Z               "line": 15
2026-06-15T15:10:07.7601145Z             },
2026-06-15T15:10:07.7601241Z             {
2026-06-15T15:10:07.7601383Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7601483Z               "line": 55
2026-06-15T15:10:07.7601599Z             },
2026-06-15T15:10:07.7601703Z             {
2026-06-15T15:10:07.7601842Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7601956Z               "line": 66
2026-06-15T15:10:07.7602060Z             },
2026-06-15T15:10:07.7602161Z             {
2026-06-15T15:10:07.7602299Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7602412Z               "line": 115
2026-06-15T15:10:07.7602517Z             },
2026-06-15T15:10:07.7602616Z             {
2026-06-15T15:10:07.7602762Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7602877Z               "line": 138
2026-06-15T15:10:07.7602969Z             }
2026-06-15T15:10:07.7603072Z           ]
2026-06-15T15:10:07.7603169Z         },
2026-06-15T15:10:07.7603273Z         "int": {
2026-06-15T15:10:07.7603387Z           "complete": false,
2026-06-15T15:10:07.7603498Z           "evidence": []
2026-06-15T15:10:07.7603702Z         },
2026-06-15T15:10:07.7603804Z         "unit": {
2026-06-15T15:10:07.7603917Z           "complete": true,
2026-06-15T15:10:07.7604030Z           "evidence": [
2026-06-15T15:10:07.7604132Z             {
2026-06-15T15:10:07.7604279Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T15:10:07.7604394Z               "line": 149
2026-06-15T15:10:07.7604499Z             },
2026-06-15T15:10:07.7604598Z             {
2026-06-15T15:10:07.7604743Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T15:10:07.7604856Z               "line": 155
2026-06-15T15:10:07.7604957Z             },
2026-06-15T15:10:07.7605062Z             {
2026-06-15T15:10:07.7605308Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T15:10:07.7605413Z               "line": 169
2026-06-15T15:10:07.7605516Z             },
2026-06-15T15:10:07.7605615Z             {
2026-06-15T15:10:07.7605759Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T15:10:07.7605859Z               "line": 178
2026-06-15T15:10:07.7605968Z             },
2026-06-15T15:10:07.7606074Z             {
2026-06-15T15:10:07.7606221Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7606336Z               "line": 195
2026-06-15T15:10:07.7606441Z             },
2026-06-15T15:10:07.7606541Z             {
2026-06-15T15:10:07.7606685Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7606784Z               "line": 208
2026-06-15T15:10:07.7606888Z             },
2026-06-15T15:10:07.7606995Z             {
2026-06-15T15:10:07.7607136Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7607237Z               "line": 271
2026-06-15T15:10:07.7607352Z             },
2026-06-15T15:10:07.7607456Z             {
2026-06-15T15:10:07.7607595Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7607710Z               "line": 290
2026-06-15T15:10:07.7607813Z             },
2026-06-15T15:10:07.7607912Z             {
2026-06-15T15:10:07.7608055Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7608177Z               "line": 319
2026-06-15T15:10:07.7608282Z             }
2026-06-15T15:10:07.7608384Z           ]
2026-06-15T15:10:07.7608487Z         }
2026-06-15T15:10:07.7608588Z       }
2026-06-15T15:10:07.7608688Z     },
2026-06-15T15:10:07.7608787Z     {
2026-06-15T15:10:07.7608927Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-15T15:10:07.7609304Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-15T15:10:07.7609413Z       "requiredStages": [
2026-06-15T15:10:07.7609532Z         "impl",
2026-06-15T15:10:07.7609642Z         "unit",
2026-06-15T15:10:07.7609746Z         "int"
2026-06-15T15:10:07.7609837Z       ],
2026-06-15T15:10:07.7609952Z       "stages": {
2026-06-15T15:10:07.7610052Z         "doc": {
2026-06-15T15:10:07.7610167Z           "complete": false,
2026-06-15T15:10:07.7610272Z           "evidence": []
2026-06-15T15:10:07.7610371Z         },
2026-06-15T15:10:07.7610482Z         "impl": {
2026-06-15T15:10:07.7610587Z           "complete": true,
2026-06-15T15:10:07.7610689Z           "evidence": [
2026-06-15T15:10:07.7610794Z             {
2026-06-15T15:10:07.7610934Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7611047Z               "line": 447
2026-06-15T15:10:07.7611152Z             },
2026-06-15T15:10:07.7611257Z             {
2026-06-15T15:10:07.7611395Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7611511Z               "line": 867
2026-06-15T15:10:07.7611606Z             },
2026-06-15T15:10:07.7611705Z             {
2026-06-15T15:10:07.7611849Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7611944Z               "line": 912
2026-06-15T15:10:07.7612048Z             },
2026-06-15T15:10:07.7612150Z             {
2026-06-15T15:10:07.7612292Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.7612397Z               "line": 937
2026-06-15T15:10:07.7612606Z             },
2026-06-15T15:10:07.7612711Z             {
2026-06-15T15:10:07.7612855Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7612972Z               "line": 987
2026-06-15T15:10:07.7613072Z             },
2026-06-15T15:10:07.7613172Z             {
2026-06-15T15:10:07.7613317Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7613428Z               "line": 1113
2026-06-15T15:10:07.7613533Z             },
2026-06-15T15:10:07.7613628Z             {
2026-06-15T15:10:07.7613767Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7613876Z               "line": 1244
2026-06-15T15:10:07.7614082Z             },
2026-06-15T15:10:07.7614181Z             {
2026-06-15T15:10:07.7614329Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7614439Z               "line": 1292
2026-06-15T15:10:07.7614539Z             },
2026-06-15T15:10:07.7614654Z             {
2026-06-15T15:10:07.7614801Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T15:10:07.7614906Z               "line": 46
2026-06-15T15:10:07.7615003Z             },
2026-06-15T15:10:07.7615106Z             {
2026-06-15T15:10:07.7615244Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T15:10:07.7615346Z               "line": 167
2026-06-15T15:10:07.7615454Z             },
2026-06-15T15:10:07.7615554Z             {
2026-06-15T15:10:07.7615684Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T15:10:07.7615793Z               "line": 132
2026-06-15T15:10:07.7615896Z             },
2026-06-15T15:10:07.7616001Z             {
2026-06-15T15:10:07.7616147Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7616257Z               "line": 137
2026-06-15T15:10:07.7616358Z             },
2026-06-15T15:10:07.7616457Z             {
2026-06-15T15:10:07.7616601Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7616701Z               "line": 183
2026-06-15T15:10:07.7616810Z             }
2026-06-15T15:10:07.7616911Z           ]
2026-06-15T15:10:07.7617011Z         },
2026-06-15T15:10:07.7617110Z         "int": {
2026-06-15T15:10:07.7617225Z           "complete": true,
2026-06-15T15:10:07.7617335Z           "evidence": [
2026-06-15T15:10:07.7617430Z             {
2026-06-15T15:10:07.7617593Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-15T15:10:07.7617692Z               "line": 27
2026-06-15T15:10:07.7617792Z             },
2026-06-15T15:10:07.7617898Z             {
2026-06-15T15:10:07.7618049Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T15:10:07.7618165Z               "line": 129
2026-06-15T15:10:07.7618265Z             },
2026-06-15T15:10:07.7618373Z             {
2026-06-15T15:10:07.7618516Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T15:10:07.7618629Z               "line": 200
2026-06-15T15:10:07.7618732Z             }
2026-06-15T15:10:07.7618833Z           ]
2026-06-15T15:10:07.7619019Z         },
2026-06-15T15:10:07.7619124Z         "unit": {
2026-06-15T15:10:07.7619244Z           "complete": true,
2026-06-15T15:10:07.7619353Z           "evidence": [
2026-06-15T15:10:07.7619453Z             {
2026-06-15T15:10:07.7619596Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T15:10:07.7619695Z               "line": 313
2026-06-15T15:10:07.7619797Z             },
2026-06-15T15:10:07.7619901Z             {
2026-06-15T15:10:07.7620039Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T15:10:07.7620155Z               "line": 345
2026-06-15T15:10:07.7620264Z             },
2026-06-15T15:10:07.7620373Z             {
2026-06-15T15:10:07.7620517Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T15:10:07.7620631Z               "line": 366
2026-06-15T15:10:07.7620732Z             },
2026-06-15T15:10:07.7620837Z             {
2026-06-15T15:10:07.7620979Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.7621198Z               "line": 508
2026-06-15T15:10:07.7621307Z             },
2026-06-15T15:10:07.7621407Z             {
2026-06-15T15:10:07.7621560Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T15:10:07.7621669Z               "line": 289
2026-06-15T15:10:07.7621766Z             },
2026-06-15T15:10:07.7621865Z             {
2026-06-15T15:10:07.7622008Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T15:10:07.7622113Z               "line": 230
2026-06-15T15:10:07.7622217Z             },
2026-06-15T15:10:07.7622313Z             {
2026-06-15T15:10:07.7622456Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7622676Z               "line": 526
2026-06-15T15:10:07.7622785Z             },
2026-06-15T15:10:07.7622885Z             {
2026-06-15T15:10:07.7623025Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.7623128Z               "line": 556
2026-06-15T15:10:07.7623228Z             }
2026-06-15T15:10:07.7623335Z           ]
2026-06-15T15:10:07.7623442Z         }
2026-06-15T15:10:07.7623547Z       }
2026-06-15T15:10:07.7623647Z     },
2026-06-15T15:10:07.7623755Z     {
2026-06-15T15:10:07.7623892Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-15T15:10:07.7625647Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-15T15:10:07.7625766Z       "requiredStages": [
2026-06-15T15:10:07.7625863Z         "doc",
2026-06-15T15:10:07.7625967Z         "impl",
2026-06-15T15:10:07.7626067Z         "unit"
2026-06-15T15:10:07.7626182Z       ],
2026-06-15T15:10:07.7626282Z       "stages": {
2026-06-15T15:10:07.7626386Z         "doc": {
2026-06-15T15:10:07.7626495Z           "complete": true,
2026-06-15T15:10:07.7626604Z           "evidence": [
2026-06-15T15:10:07.7626712Z             {
2026-06-15T15:10:07.7626846Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7626961Z               "line": 307
2026-06-15T15:10:07.7627064Z             }
2026-06-15T15:10:07.7627171Z           ]
2026-06-15T15:10:07.7627275Z         },
2026-06-15T15:10:07.7627375Z         "impl": {
2026-06-15T15:10:07.7627495Z           "complete": true,
2026-06-15T15:10:07.7627595Z           "evidence": [
2026-06-15T15:10:07.7627713Z             {
2026-06-15T15:10:07.7627876Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T15:10:07.7628000Z               "line": 33
2026-06-15T15:10:07.7628105Z             },
2026-06-15T15:10:07.7628210Z             {
2026-06-15T15:10:07.7628366Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T15:10:07.7628482Z               "line": 39
2026-06-15T15:10:07.7628581Z             }
2026-06-15T15:10:07.7628676Z           ]
2026-06-15T15:10:07.7628778Z         },
2026-06-15T15:10:07.7628877Z         "int": {
2026-06-15T15:10:07.7629066Z           "complete": false,
2026-06-15T15:10:07.7629185Z           "evidence": []
2026-06-15T15:10:07.7629283Z         },
2026-06-15T15:10:07.7629384Z         "unit": {
2026-06-15T15:10:07.7629494Z           "complete": true,
2026-06-15T15:10:07.7629607Z           "evidence": [
2026-06-15T15:10:07.7629708Z             {
2026-06-15T15:10:07.7629871Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T15:10:07.7629989Z               "line": 95
2026-06-15T15:10:07.7630085Z             }
2026-06-15T15:10:07.7630190Z           ]
2026-06-15T15:10:07.7630289Z         }
2026-06-15T15:10:07.7630400Z       }
2026-06-15T15:10:07.7630504Z     },
2026-06-15T15:10:07.7630604Z     {
2026-06-15T15:10:07.7630848Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-15T15:10:07.7633035Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-15T15:10:07.7633265Z       "requiredStages": [
2026-06-15T15:10:07.7633378Z         "unit"
2026-06-15T15:10:07.7633478Z       ],
2026-06-15T15:10:07.7633589Z       "stages": {
2026-06-15T15:10:07.7633693Z         "doc": {
2026-06-15T15:10:07.7633808Z           "complete": false,
2026-06-15T15:10:07.7633924Z           "evidence": []
2026-06-15T15:10:07.7634021Z         },
2026-06-15T15:10:07.7634126Z         "impl": {
2026-06-15T15:10:07.7634231Z           "complete": true,
2026-06-15T15:10:07.7634348Z           "evidence": [
2026-06-15T15:10:07.7634443Z             {
2026-06-15T15:10:07.7634568Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7634681Z               "line": 3082
2026-06-15T15:10:07.7634781Z             },
2026-06-15T15:10:07.7634892Z             {
2026-06-15T15:10:07.7635015Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7635140Z               "line": 3134
2026-06-15T15:10:07.7635240Z             },
2026-06-15T15:10:07.7635344Z             {
2026-06-15T15:10:07.7635469Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7635578Z               "line": 3179
2026-06-15T15:10:07.7635678Z             },
2026-06-15T15:10:07.7635784Z             {
2026-06-15T15:10:07.7635926Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7636041Z               "line": 92
2026-06-15T15:10:07.7636137Z             },
2026-06-15T15:10:07.7636236Z             {
2026-06-15T15:10:07.7636374Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7636495Z               "line": 148
2026-06-15T15:10:07.7636603Z             },
2026-06-15T15:10:07.7636699Z             {
2026-06-15T15:10:07.7636838Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7636946Z               "line": 192
2026-06-15T15:10:07.7637051Z             },
2026-06-15T15:10:07.7637150Z             {
2026-06-15T15:10:07.7637291Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7637401Z               "line": 200
2026-06-15T15:10:07.7637497Z             },
2026-06-15T15:10:07.7637601Z             {
2026-06-15T15:10:07.7637736Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7637859Z               "line": 211
2026-06-15T15:10:07.7637958Z             },
2026-06-15T15:10:07.7638065Z             {
2026-06-15T15:10:07.7638202Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7638317Z               "line": 265
2026-06-15T15:10:07.7638417Z             },
2026-06-15T15:10:07.7638522Z             {
2026-06-15T15:10:07.7638660Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7638760Z               "line": 279
2026-06-15T15:10:07.7638860Z             }
2026-06-15T15:10:07.7639033Z           ]
2026-06-15T15:10:07.7639127Z         },
2026-06-15T15:10:07.7639237Z         "int": {
2026-06-15T15:10:07.7639353Z           "complete": false,
2026-06-15T15:10:07.7639475Z           "evidence": []
2026-06-15T15:10:07.7639579Z         },
2026-06-15T15:10:07.7639675Z         "unit": {
2026-06-15T15:10:07.7639791Z           "complete": true,
2026-06-15T15:10:07.7639905Z           "evidence": [
2026-06-15T15:10:07.7640016Z             {
2026-06-15T15:10:07.7640258Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7640378Z               "line": 419
2026-06-15T15:10:07.7640478Z             },
2026-06-15T15:10:07.7640578Z             {
2026-06-15T15:10:07.7640707Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7640821Z               "line": 470
2026-06-15T15:10:07.7640923Z             },
2026-06-15T15:10:07.7641026Z             {
2026-06-15T15:10:07.7641164Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7641270Z               "line": 499
2026-06-15T15:10:07.7641379Z             },
2026-06-15T15:10:07.7641479Z             {
2026-06-15T15:10:07.7641618Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7641838Z               "line": 526
2026-06-15T15:10:07.7641938Z             }
2026-06-15T15:10:07.7642041Z           ]
2026-06-15T15:10:07.7642143Z         }
2026-06-15T15:10:07.7642238Z       }
2026-06-15T15:10:07.7642337Z     },
2026-06-15T15:10:07.7642436Z     {
2026-06-15T15:10:07.7642581Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-15T15:10:07.7642794Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-15T15:10:07.7642910Z       "requiredStages": [
2026-06-15T15:10:07.7643009Z         "impl",
2026-06-15T15:10:07.7643118Z         "unit"
2026-06-15T15:10:07.7643215Z       ],
2026-06-15T15:10:07.7643329Z       "stages": {
2026-06-15T15:10:07.7643429Z         "doc": {
2026-06-15T15:10:07.7643543Z           "complete": false,
2026-06-15T15:10:07.7643653Z           "evidence": []
2026-06-15T15:10:07.7643753Z         },
2026-06-15T15:10:07.7643854Z         "impl": {
2026-06-15T15:10:07.7643958Z           "complete": true,
2026-06-15T15:10:07.7644077Z           "evidence": [
2026-06-15T15:10:07.7644183Z             {
2026-06-15T15:10:07.7644343Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7644455Z               "line": 62
2026-06-15T15:10:07.7644554Z             },
2026-06-15T15:10:07.7644663Z             {
2026-06-15T15:10:07.7644825Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7644936Z               "line": 71
2026-06-15T15:10:07.7645041Z             },
2026-06-15T15:10:07.7645142Z             {
2026-06-15T15:10:07.7645289Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7645390Z               "line": 80
2026-06-15T15:10:07.7645490Z             },
2026-06-15T15:10:07.7645589Z             {
2026-06-15T15:10:07.7645734Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7645838Z               "line": 88
2026-06-15T15:10:07.7645937Z             },
2026-06-15T15:10:07.7646058Z             {
2026-06-15T15:10:07.7646201Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7646310Z               "line": 33
2026-06-15T15:10:07.7646416Z             },
2026-06-15T15:10:07.7646520Z             {
2026-06-15T15:10:07.7646659Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7646764Z               "line": 65
2026-06-15T15:10:07.7646872Z             },
2026-06-15T15:10:07.7646969Z             {
2026-06-15T15:10:07.7647111Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7647225Z               "line": 74
2026-06-15T15:10:07.7647317Z             },
2026-06-15T15:10:07.7647421Z             {
2026-06-15T15:10:07.7647563Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7647663Z               "line": 93
2026-06-15T15:10:07.7647766Z             },
2026-06-15T15:10:07.7647866Z             {
2026-06-15T15:10:07.7648009Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7648128Z               "line": 102
2026-06-15T15:10:07.7648232Z             },
2026-06-15T15:10:07.7648338Z             {
2026-06-15T15:10:07.7648476Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7648586Z               "line": 111
2026-06-15T15:10:07.7648681Z             },
2026-06-15T15:10:07.7648790Z             {
2026-06-15T15:10:07.7649091Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7649206Z               "line": 122
2026-06-15T15:10:07.7649306Z             },
2026-06-15T15:10:07.7649411Z             {
2026-06-15T15:10:07.7649550Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7649659Z               "line": 140
2026-06-15T15:10:07.7649764Z             },
2026-06-15T15:10:07.7649869Z             {
2026-06-15T15:10:07.7650006Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7650115Z               "line": 149
2026-06-15T15:10:07.7650225Z             },
2026-06-15T15:10:07.7650328Z             {
2026-06-15T15:10:07.7650571Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7650676Z               "line": 158
2026-06-15T15:10:07.7650780Z             },
2026-06-15T15:10:07.7650886Z             {
2026-06-15T15:10:07.7651023Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7651148Z               "line": 169
2026-06-15T15:10:07.7651248Z             },
2026-06-15T15:10:07.7651352Z             {
2026-06-15T15:10:07.7651492Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7651596Z               "line": 177
2026-06-15T15:10:07.7651701Z             },
2026-06-15T15:10:07.7651802Z             {
2026-06-15T15:10:07.7651940Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7652044Z               "line": 186
2026-06-15T15:10:07.7652150Z             },
2026-06-15T15:10:07.7652249Z             {
2026-06-15T15:10:07.7652388Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7652498Z               "line": 195
2026-06-15T15:10:07.7652607Z             },
2026-06-15T15:10:07.7652718Z             {
2026-06-15T15:10:07.7652855Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7652963Z               "line": 204
2026-06-15T15:10:07.7653063Z             },
2026-06-15T15:10:07.7653165Z             {
2026-06-15T15:10:07.7653311Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7653422Z               "line": 216
2026-06-15T15:10:07.7653527Z             },
2026-06-15T15:10:07.7653626Z             {
2026-06-15T15:10:07.7653756Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7653865Z               "line": 223
2026-06-15T15:10:07.7653974Z             },
2026-06-15T15:10:07.7654075Z             {
2026-06-15T15:10:07.7654213Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7654323Z               "line": 232
2026-06-15T15:10:07.7654423Z             },
2026-06-15T15:10:07.7654523Z             {
2026-06-15T15:10:07.7654667Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7654771Z               "line": 239
2026-06-15T15:10:07.7654871Z             },
2026-06-15T15:10:07.7654971Z             {
2026-06-15T15:10:07.7655104Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7655223Z               "line": 306
2026-06-15T15:10:07.7655328Z             },
2026-06-15T15:10:07.7655436Z             {
2026-06-15T15:10:07.7655573Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7655693Z               "line": 318
2026-06-15T15:10:07.7655788Z             },
2026-06-15T15:10:07.7655887Z             {
2026-06-15T15:10:07.7656032Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7656145Z               "line": 405
2026-06-15T15:10:07.7656245Z             }
2026-06-15T15:10:07.7656351Z           ]
2026-06-15T15:10:07.7656465Z         },
2026-06-15T15:10:07.7656570Z         "int": {
2026-06-15T15:10:07.7656689Z           "complete": false,
2026-06-15T15:10:07.7656803Z           "evidence": []
2026-06-15T15:10:07.7656899Z         },
2026-06-15T15:10:07.7657013Z         "unit": {
2026-06-15T15:10:07.7657127Z           "complete": true,
2026-06-15T15:10:07.7657238Z           "evidence": [
2026-06-15T15:10:07.7657342Z             {
2026-06-15T15:10:07.7657485Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7657704Z               "line": 487
2026-06-15T15:10:07.7657800Z             },
2026-06-15T15:10:07.7657901Z             {
2026-06-15T15:10:07.7658042Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7658161Z               "line": 528
2026-06-15T15:10:07.7658261Z             },
2026-06-15T15:10:07.7658364Z             {
2026-06-15T15:10:07.7658503Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7658603Z               "line": 541
2026-06-15T15:10:07.7658707Z             },
2026-06-15T15:10:07.7658807Z             {
2026-06-15T15:10:07.7659036Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7659275Z               "line": 627
2026-06-15T15:10:07.7659369Z             }
2026-06-15T15:10:07.7659471Z           ]
2026-06-15T15:10:07.7659570Z         }
2026-06-15T15:10:07.7659670Z       }
2026-06-15T15:10:07.7659771Z     },
2026-06-15T15:10:07.7659867Z     {
2026-06-15T15:10:07.7662561Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-15T15:10:07.7662828Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-15T15:10:07.7662948Z       "requiredStages": [
2026-06-15T15:10:07.7663049Z         "impl",
2026-06-15T15:10:07.7663147Z         "unit"
2026-06-15T15:10:07.7663248Z       ],
2026-06-15T15:10:07.7663359Z       "stages": {
2026-06-15T15:10:07.7663457Z         "doc": {
2026-06-15T15:10:07.7663575Z           "complete": false,
2026-06-15T15:10:07.7663686Z           "evidence": []
2026-06-15T15:10:07.7663786Z         },
2026-06-15T15:10:07.7663885Z         "impl": {
2026-06-15T15:10:07.7664001Z           "complete": true,
2026-06-15T15:10:07.7664129Z           "evidence": [
2026-06-15T15:10:07.7664229Z             {
2026-06-15T15:10:07.7664382Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T15:10:07.7664501Z               "line": 152
2026-06-15T15:10:07.7664602Z             },
2026-06-15T15:10:07.7664702Z             {
2026-06-15T15:10:07.7664858Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.7664974Z               "line": 167
2026-06-15T15:10:07.7665073Z             }
2026-06-15T15:10:07.7665178Z           ]
2026-06-15T15:10:07.7665279Z         },
2026-06-15T15:10:07.7665383Z         "int": {
2026-06-15T15:10:07.7665498Z           "complete": false,
2026-06-15T15:10:07.7665604Z           "evidence": []
2026-06-15T15:10:07.7665702Z         },
2026-06-15T15:10:07.7665797Z         "unit": {
2026-06-15T15:10:07.7665916Z           "complete": true,
2026-06-15T15:10:07.7666024Z           "evidence": [
2026-06-15T15:10:07.7666123Z             {
2026-06-15T15:10:07.7666277Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T15:10:07.7666386Z               "line": 274
2026-06-15T15:10:07.7666490Z             },
2026-06-15T15:10:07.7666582Z             {
2026-06-15T15:10:07.7666734Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.7666849Z               "line": 712
2026-06-15T15:10:07.7666963Z             },
2026-06-15T15:10:07.7667062Z             {
2026-06-15T15:10:07.7667207Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.7667321Z               "line": 725
2026-06-15T15:10:07.7667421Z             }
2026-06-15T15:10:07.7667526Z           ]
2026-06-15T15:10:07.7667631Z         }
2026-06-15T15:10:07.7667730Z       }
2026-06-15T15:10:07.7667836Z     },
2026-06-15T15:10:07.7667931Z     {
2026-06-15T15:10:07.7668065Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-15T15:10:07.7668231Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-15T15:10:07.7668350Z       "requiredStages": [
2026-06-15T15:10:07.7668466Z         "impl",
2026-06-15T15:10:07.7668570Z         "unit"
2026-06-15T15:10:07.7668669Z       ],
2026-06-15T15:10:07.7668765Z       "stages": {
2026-06-15T15:10:07.7668868Z         "doc": {
2026-06-15T15:10:07.7669072Z           "complete": false,
2026-06-15T15:10:07.7669182Z           "evidence": []
2026-06-15T15:10:07.7669421Z         },
2026-06-15T15:10:07.7669526Z         "impl": {
2026-06-15T15:10:07.7669629Z           "complete": true,
2026-06-15T15:10:07.7669731Z           "evidence": [
2026-06-15T15:10:07.7669835Z             {
2026-06-15T15:10:07.7669983Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7670093Z               "line": 114
2026-06-15T15:10:07.7670203Z             },
2026-06-15T15:10:07.7670307Z             {
2026-06-15T15:10:07.7670464Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.7670569Z               "line": 481
2026-06-15T15:10:07.7670671Z             }
2026-06-15T15:10:07.7670770Z           ]
2026-06-15T15:10:07.7670976Z         },
2026-06-15T15:10:07.7671080Z         "int": {
2026-06-15T15:10:07.7671198Z           "complete": false,
2026-06-15T15:10:07.7671312Z           "evidence": []
2026-06-15T15:10:07.7671412Z         },
2026-06-15T15:10:07.7671529Z         "unit": {
2026-06-15T15:10:07.7671643Z           "complete": true,
2026-06-15T15:10:07.7671759Z           "evidence": [
2026-06-15T15:10:07.7671862Z             {
2026-06-15T15:10:07.7672007Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.7672120Z               "line": 515
2026-06-15T15:10:07.7672225Z             }
2026-06-15T15:10:07.7672326Z           ]
2026-06-15T15:10:07.7672431Z         }
2026-06-15T15:10:07.7672530Z       }
2026-06-15T15:10:07.7672631Z     },
2026-06-15T15:10:07.7672730Z     {
2026-06-15T15:10:07.7672878Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-15T15:10:07.7673070Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-15T15:10:07.7673193Z       "requiredStages": [
2026-06-15T15:10:07.7673290Z         "impl",
2026-06-15T15:10:07.7673393Z         "unit"
2026-06-15T15:10:07.7673494Z       ],
2026-06-15T15:10:07.7673600Z       "stages": {
2026-06-15T15:10:07.7673703Z         "doc": {
2026-06-15T15:10:07.7673804Z           "complete": false,
2026-06-15T15:10:07.7673924Z           "evidence": []
2026-06-15T15:10:07.7674031Z         },
2026-06-15T15:10:07.7674135Z         "impl": {
2026-06-15T15:10:07.7674251Z           "complete": true,
2026-06-15T15:10:07.7674360Z           "evidence": [
2026-06-15T15:10:07.7674465Z             {
2026-06-15T15:10:07.7674618Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7674727Z               "line": 502
2026-06-15T15:10:07.7674828Z             },
2026-06-15T15:10:07.7674928Z             {
2026-06-15T15:10:07.7675071Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T15:10:07.7675172Z               "line": 28
2026-06-15T15:10:07.7675271Z             }
2026-06-15T15:10:07.7675371Z           ]
2026-06-15T15:10:07.7675477Z         },
2026-06-15T15:10:07.7675576Z         "int": {
2026-06-15T15:10:07.7675700Z           "complete": false,
2026-06-15T15:10:07.7675806Z           "evidence": []
2026-06-15T15:10:07.7675905Z         },
2026-06-15T15:10:07.7676010Z         "unit": {
2026-06-15T15:10:07.7676131Z           "complete": true,
2026-06-15T15:10:07.7676238Z           "evidence": [
2026-06-15T15:10:07.7676343Z             {
2026-06-15T15:10:07.7676490Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T15:10:07.7676603Z               "line": 229
2026-06-15T15:10:07.7676702Z             }
2026-06-15T15:10:07.7676803Z           ]
2026-06-15T15:10:07.7676903Z         }
2026-06-15T15:10:07.7677007Z       }
2026-06-15T15:10:07.7677109Z     },
2026-06-15T15:10:07.7677209Z     {
2026-06-15T15:10:07.7677351Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-15T15:10:07.7677509Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-15T15:10:07.7677632Z       "requiredStages": [],
2026-06-15T15:10:07.7677734Z       "stages": {
2026-06-15T15:10:07.7677848Z         "doc": {
2026-06-15T15:10:07.7677961Z           "complete": false,
2026-06-15T15:10:07.7678072Z           "evidence": []
2026-06-15T15:10:07.7678181Z         },
2026-06-15T15:10:07.7678271Z         "impl": {
2026-06-15T15:10:07.7678462Z           "complete": false,
2026-06-15T15:10:07.7678572Z           "evidence": []
2026-06-15T15:10:07.7678674Z         },
2026-06-15T15:10:07.7678773Z         "int": {
2026-06-15T15:10:07.7678897Z           "complete": false,
2026-06-15T15:10:07.7679092Z           "evidence": []
2026-06-15T15:10:07.7679191Z         },
2026-06-15T15:10:07.7679296Z         "unit": {
2026-06-15T15:10:07.7679409Z           "complete": false,
2026-06-15T15:10:07.7679517Z           "evidence": []
2026-06-15T15:10:07.7679608Z         }
2026-06-15T15:10:07.7679709Z       }
2026-06-15T15:10:07.7679809Z     },
2026-06-15T15:10:07.7679904Z     {
2026-06-15T15:10:07.7680048Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-15T15:10:07.7680329Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-15T15:10:07.7680448Z       "requiredStages": [
2026-06-15T15:10:07.7680553Z         "impl",
2026-06-15T15:10:07.7680653Z         "unit"
2026-06-15T15:10:07.7680758Z       ],
2026-06-15T15:10:07.7680858Z       "stages": {
2026-06-15T15:10:07.7680968Z         "doc": {
2026-06-15T15:10:07.7681086Z           "complete": false,
2026-06-15T15:10:07.7681201Z           "evidence": []
2026-06-15T15:10:07.7681307Z         },
2026-06-15T15:10:07.7681415Z         "impl": {
2026-06-15T15:10:07.7681531Z           "complete": true,
2026-06-15T15:10:07.7681641Z           "evidence": [
2026-06-15T15:10:07.7681743Z             {
2026-06-15T15:10:07.7681886Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T15:10:07.7681995Z               "line": 19
2026-06-15T15:10:07.7682089Z             },
2026-06-15T15:10:07.7682190Z             {
2026-06-15T15:10:07.7682338Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.7682456Z               "line": 347
2026-06-15T15:10:07.7682557Z             },
2026-06-15T15:10:07.7682658Z             {
2026-06-15T15:10:07.7682804Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.7682905Z               "line": 383
2026-06-15T15:10:07.7683010Z             },
2026-06-15T15:10:07.7683109Z             {
2026-06-15T15:10:07.7683248Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T15:10:07.7683357Z               "line": 15
2026-06-15T15:10:07.7683458Z             },
2026-06-15T15:10:07.7683558Z             {
2026-06-15T15:10:07.7683696Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T15:10:07.7683797Z               "line": 48
2026-06-15T15:10:07.7683897Z             },
2026-06-15T15:10:07.7683996Z             {
2026-06-15T15:10:07.7684141Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T15:10:07.7684249Z               "line": 119
2026-06-15T15:10:07.7684364Z             },
2026-06-15T15:10:07.7684460Z             {
2026-06-15T15:10:07.7684587Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7684700Z               "line": 3510
2026-06-15T15:10:07.7684802Z             }
2026-06-15T15:10:07.7684897Z           ]
2026-06-15T15:10:07.7685001Z         },
2026-06-15T15:10:07.7685107Z         "int": {
2026-06-15T15:10:07.7685221Z           "complete": false,
2026-06-15T15:10:07.7685321Z           "evidence": []
2026-06-15T15:10:07.7685422Z         },
2026-06-15T15:10:07.7685527Z         "unit": {
2026-06-15T15:10:07.7685640Z           "complete": true,
2026-06-15T15:10:07.7685742Z           "evidence": [
2026-06-15T15:10:07.7685845Z             {
2026-06-15T15:10:07.7685993Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.7686099Z               "line": 496
2026-06-15T15:10:07.7686199Z             },
2026-06-15T15:10:07.7686303Z             {
2026-06-15T15:10:07.7686447Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T15:10:07.7686565Z               "line": 165
2026-06-15T15:10:07.7686667Z             },
2026-06-15T15:10:07.7686776Z             {
2026-06-15T15:10:07.7686922Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T15:10:07.7687027Z               "line": 175
2026-06-15T15:10:07.7687116Z             }
2026-06-15T15:10:07.7687330Z           ]
2026-06-15T15:10:07.7687431Z         }
2026-06-15T15:10:07.7687535Z       }
2026-06-15T15:10:07.7687635Z     },
2026-06-15T15:10:07.7687740Z     {
2026-06-15T15:10:07.7687878Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-15T15:10:07.7688818Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-15T15:10:07.7688938Z       "requiredStages": [
2026-06-15T15:10:07.7689109Z         "impl",
2026-06-15T15:10:07.7689323Z         "unit"
2026-06-15T15:10:07.7689423Z       ],
2026-06-15T15:10:07.7689524Z       "stages": {
2026-06-15T15:10:07.7689634Z         "doc": {
2026-06-15T15:10:07.7689751Z           "complete": false,
2026-06-15T15:10:07.7689865Z           "evidence": []
2026-06-15T15:10:07.7689960Z         },
2026-06-15T15:10:07.7690073Z         "impl": {
2026-06-15T15:10:07.7690187Z           "complete": true,
2026-06-15T15:10:07.7690289Z           "evidence": [
2026-06-15T15:10:07.7690392Z             {
2026-06-15T15:10:07.7690532Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7690641Z               "line": 192
2026-06-15T15:10:07.7690745Z             },
2026-06-15T15:10:07.7690847Z             {
2026-06-15T15:10:07.7690989Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7691093Z               "line": 279
2026-06-15T15:10:07.7691199Z             }
2026-06-15T15:10:07.7691303Z           ]
2026-06-15T15:10:07.7691403Z         },
2026-06-15T15:10:07.7691514Z         "int": {
2026-06-15T15:10:07.7691636Z           "complete": false,
2026-06-15T15:10:07.7691752Z           "evidence": []
2026-06-15T15:10:07.7691852Z         },
2026-06-15T15:10:07.7691965Z         "unit": {
2026-06-15T15:10:07.7692072Z           "complete": true,
2026-06-15T15:10:07.7692181Z           "evidence": [
2026-06-15T15:10:07.7692285Z             {
2026-06-15T15:10:07.7692423Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7692532Z               "line": 470
2026-06-15T15:10:07.7692635Z             },
2026-06-15T15:10:07.7692735Z             {
2026-06-15T15:10:07.7692865Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.7692968Z               "line": 526
2026-06-15T15:10:07.7693064Z             }
2026-06-15T15:10:07.7693170Z           ]
2026-06-15T15:10:07.7693264Z         }
2026-06-15T15:10:07.7693359Z       }
2026-06-15T15:10:07.7693489Z     },
2026-06-15T15:10:07.7693607Z     {
2026-06-15T15:10:07.7693747Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-15T15:10:07.7693936Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-15T15:10:07.7694057Z       "requiredStages": [
2026-06-15T15:10:07.7694161Z         "impl",
2026-06-15T15:10:07.7694260Z         "unit"
2026-06-15T15:10:07.7694372Z       ],
2026-06-15T15:10:07.7694476Z       "stages": {
2026-06-15T15:10:07.7694580Z         "doc": {
2026-06-15T15:10:07.7694696Z           "complete": false,
2026-06-15T15:10:07.7694809Z           "evidence": []
2026-06-15T15:10:07.7694900Z         },
2026-06-15T15:10:07.7695006Z         "impl": {
2026-06-15T15:10:07.7695119Z           "complete": true,
2026-06-15T15:10:07.7695228Z           "evidence": [
2026-06-15T15:10:07.7695333Z             {
2026-06-15T15:10:07.7695476Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T15:10:07.7695590Z               "line": 35
2026-06-15T15:10:07.7695692Z             }
2026-06-15T15:10:07.7695796Z           ]
2026-06-15T15:10:07.7695895Z         },
2026-06-15T15:10:07.7695997Z         "int": {
2026-06-15T15:10:07.7696115Z           "complete": false,
2026-06-15T15:10:07.7696229Z           "evidence": []
2026-06-15T15:10:07.7696335Z         },
2026-06-15T15:10:07.7696440Z         "unit": {
2026-06-15T15:10:07.7696548Z           "complete": true,
2026-06-15T15:10:07.7696655Z           "evidence": [
2026-06-15T15:10:07.7696878Z             {
2026-06-15T15:10:07.7697030Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T15:10:07.7697130Z               "line": 220
2026-06-15T15:10:07.7697232Z             }
2026-06-15T15:10:07.7697336Z           ]
2026-06-15T15:10:07.7697430Z         }
2026-06-15T15:10:07.7697535Z       }
2026-06-15T15:10:07.7697625Z     },
2026-06-15T15:10:07.7697728Z     {
2026-06-15T15:10:07.7697852Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-15T15:10:07.7698137Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-15T15:10:07.7698258Z       "requiredStages": [
2026-06-15T15:10:07.7698433Z         "impl",
2026-06-15T15:10:07.7698544Z         "unit"
2026-06-15T15:10:07.7698644Z       ],
2026-06-15T15:10:07.7698758Z       "stages": {
2026-06-15T15:10:07.7698859Z         "doc": {
2026-06-15T15:10:07.7699034Z           "complete": false,
2026-06-15T15:10:07.7699145Z           "evidence": []
2026-06-15T15:10:07.7699244Z         },
2026-06-15T15:10:07.7699349Z         "impl": {
2026-06-15T15:10:07.7699460Z           "complete": true,
2026-06-15T15:10:07.7699568Z           "evidence": [
2026-06-15T15:10:07.7699673Z             {
2026-06-15T15:10:07.7699828Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.7699930Z               "line": 405
2026-06-15T15:10:07.7700031Z             },
2026-06-15T15:10:07.7700133Z             {
2026-06-15T15:10:07.7700274Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.7700392Z               "line": 409
2026-06-15T15:10:07.7700497Z             },
2026-06-15T15:10:07.7700605Z             {
2026-06-15T15:10:07.7700743Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T15:10:07.7700849Z               "line": 156
2026-06-15T15:10:07.7700952Z             }
2026-06-15T15:10:07.7701053Z           ]
2026-06-15T15:10:07.7701149Z         },
2026-06-15T15:10:07.7701243Z         "int": {
2026-06-15T15:10:07.7701363Z           "complete": false,
2026-06-15T15:10:07.7701473Z           "evidence": []
2026-06-15T15:10:07.7701572Z         },
2026-06-15T15:10:07.7701673Z         "unit": {
2026-06-15T15:10:07.7701788Z           "complete": true,
2026-06-15T15:10:07.7701892Z           "evidence": [
2026-06-15T15:10:07.7701992Z             {
2026-06-15T15:10:07.7702140Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.7702254Z               "line": 812
2026-06-15T15:10:07.7702351Z             },
2026-06-15T15:10:07.7702455Z             {
2026-06-15T15:10:07.7702602Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.7702709Z               "line": 826
2026-06-15T15:10:07.7702812Z             },
2026-06-15T15:10:07.7702911Z             {
2026-06-15T15:10:07.7703059Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.7703172Z               "line": 845
2026-06-15T15:10:07.7703266Z             },
2026-06-15T15:10:07.7703367Z             {
2026-06-15T15:10:07.7703515Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.7703634Z               "line": 862
2026-06-15T15:10:07.7703730Z             },
2026-06-15T15:10:07.7703829Z             {
2026-06-15T15:10:07.7703987Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T15:10:07.7704097Z               "line": 441
2026-06-15T15:10:07.7704196Z             }
2026-06-15T15:10:07.7704302Z           ]
2026-06-15T15:10:07.7704402Z         }
2026-06-15T15:10:07.7704501Z       }
2026-06-15T15:10:07.7704608Z     },
2026-06-15T15:10:07.7704707Z     {
2026-06-15T15:10:07.7704845Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-15T15:10:07.7707060Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-15T15:10:07.7707280Z       "requiredStages": [
2026-06-15T15:10:07.7707385Z         "unit",
2026-06-15T15:10:07.7707515Z         "int"
2026-06-15T15:10:07.7707618Z       ],
2026-06-15T15:10:07.7707744Z       "stages": {
2026-06-15T15:10:07.7707863Z         "doc": {
2026-06-15T15:10:07.7708080Z           "complete": true,
2026-06-15T15:10:07.7708190Z           "evidence": [
2026-06-15T15:10:07.7708293Z             {
2026-06-15T15:10:07.7708427Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7708537Z               "line": 374
2026-06-15T15:10:07.7708636Z             }
2026-06-15T15:10:07.7708736Z           ]
2026-06-15T15:10:07.7708837Z         },
2026-06-15T15:10:07.7708936Z         "impl": {
2026-06-15T15:10:07.7709128Z           "complete": true,
2026-06-15T15:10:07.7709242Z           "evidence": [
2026-06-15T15:10:07.7709346Z             {
2026-06-15T15:10:07.7709499Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7709603Z               "line": 97
2026-06-15T15:10:07.7709710Z             }
2026-06-15T15:10:07.7709819Z           ]
2026-06-15T15:10:07.7709923Z         },
2026-06-15T15:10:07.7710029Z         "int": {
2026-06-15T15:10:07.7710152Z           "complete": true,
2026-06-15T15:10:07.7710257Z           "evidence": [
2026-06-15T15:10:07.7710378Z             {
2026-06-15T15:10:07.7710529Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.7710640Z               "line": 918
2026-06-15T15:10:07.7710745Z             }
2026-06-15T15:10:07.7710843Z           ]
2026-06-15T15:10:07.7710942Z         },
2026-06-15T15:10:07.7711058Z         "unit": {
2026-06-15T15:10:07.7711174Z           "complete": true,
2026-06-15T15:10:07.7711289Z           "evidence": [
2026-06-15T15:10:07.7711389Z             {
2026-06-15T15:10:07.7711536Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.7711652Z               "line": 1459
2026-06-15T15:10:07.7711752Z             }
2026-06-15T15:10:07.7711861Z           ]
2026-06-15T15:10:07.7711952Z         }
2026-06-15T15:10:07.7712071Z       }
2026-06-15T15:10:07.7712175Z     },
2026-06-15T15:10:07.7712276Z     {
2026-06-15T15:10:07.7712414Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-15T15:10:07.7713255Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-15T15:10:07.7713381Z       "requiredStages": [
2026-06-15T15:10:07.7713476Z         "doc",
2026-06-15T15:10:07.7713638Z         "impl",
2026-06-15T15:10:07.7713741Z         "unit"
2026-06-15T15:10:07.7713836Z       ],
2026-06-15T15:10:07.7713937Z       "stages": {
2026-06-15T15:10:07.7714037Z         "doc": {
2026-06-15T15:10:07.7714156Z           "complete": true,
2026-06-15T15:10:07.7714266Z           "evidence": [
2026-06-15T15:10:07.7714375Z             {
2026-06-15T15:10:07.7714504Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T15:10:07.7714619Z               "line": 359
2026-06-15T15:10:07.7714723Z             }
2026-06-15T15:10:07.7714829Z           ]
2026-06-15T15:10:07.7714933Z         },
2026-06-15T15:10:07.7715033Z         "impl": {
2026-06-15T15:10:07.7715158Z           "complete": true,
2026-06-15T15:10:07.7715267Z           "evidence": [
2026-06-15T15:10:07.7715377Z             {
2026-06-15T15:10:07.7715525Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T15:10:07.7715629Z               "line": 87
2026-06-15T15:10:07.7715724Z             },
2026-06-15T15:10:07.7715953Z             {
2026-06-15T15:10:07.7716107Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T15:10:07.7716216Z               "line": 105
2026-06-15T15:10:07.7716324Z             },
2026-06-15T15:10:07.7716434Z             {
2026-06-15T15:10:07.7716601Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.7716715Z               "line": 55
2026-06-15T15:10:07.7716816Z             },
2026-06-15T15:10:07.7716916Z             {
2026-06-15T15:10:07.7717054Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.7717164Z               "line": 31
2026-06-15T15:10:07.7717268Z             },
2026-06-15T15:10:07.7717474Z             {
2026-06-15T15:10:07.7717616Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.7717718Z               "line": 292
2026-06-15T15:10:07.7717817Z             },
2026-06-15T15:10:07.7717917Z             {
2026-06-15T15:10:07.7718066Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T15:10:07.7718184Z               "line": 95
2026-06-15T15:10:07.7718279Z             },
2026-06-15T15:10:07.7718381Z             {
2026-06-15T15:10:07.7718522Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.7718640Z               "line": 29
2026-06-15T15:10:07.7718746Z             },
2026-06-15T15:10:07.7718848Z             {
2026-06-15T15:10:07.7719068Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.7719173Z               "line": 104
2026-06-15T15:10:07.7719267Z             },
2026-06-15T15:10:07.7719374Z             {
2026-06-15T15:10:07.7719539Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7719655Z               "line": 208
2026-06-15T15:10:07.7719759Z             },
2026-06-15T15:10:07.7719858Z             {
2026-06-15T15:10:07.7720003Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T15:10:07.7720122Z               "line": 28
2026-06-15T15:10:07.7720222Z             },
2026-06-15T15:10:07.7720322Z             {
2026-06-15T15:10:07.7720465Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T15:10:07.7720565Z               "line": 74
2026-06-15T15:10:07.7720661Z             },
2026-06-15T15:10:07.7720760Z             {
2026-06-15T15:10:07.7720919Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T15:10:07.7721032Z               "line": 32
2026-06-15T15:10:07.7721132Z             },
2026-06-15T15:10:07.7721234Z             {
2026-06-15T15:10:07.7721375Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.7721493Z               "line": 40
2026-06-15T15:10:07.7721603Z             },
2026-06-15T15:10:07.7721706Z             {
2026-06-15T15:10:07.7721844Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.7721969Z               "line": 184
2026-06-15T15:10:07.7722072Z             },
2026-06-15T15:10:07.7722173Z             {
2026-06-15T15:10:07.7722312Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T15:10:07.7722416Z               "line": 61
2026-06-15T15:10:07.7722512Z             },
2026-06-15T15:10:07.7722612Z             {
2026-06-15T15:10:07.7722754Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T15:10:07.7722875Z               "line": 131
2026-06-15T15:10:07.7722979Z             },
2026-06-15T15:10:07.7723084Z             {
2026-06-15T15:10:07.7723218Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T15:10:07.7723337Z               "line": 223
2026-06-15T15:10:07.7723437Z             },
2026-06-15T15:10:07.7723543Z             {
2026-06-15T15:10:07.7723675Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T15:10:07.7723795Z               "line": 37
2026-06-15T15:10:07.7723909Z             },
2026-06-15T15:10:07.7724008Z             {
2026-06-15T15:10:07.7724156Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T15:10:07.7724258Z               "line": 38
2026-06-15T15:10:07.7724483Z             },
2026-06-15T15:10:07.7724587Z             {
2026-06-15T15:10:07.7724735Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T15:10:07.7724850Z               "line": 36
2026-06-15T15:10:07.7724949Z             },
2026-06-15T15:10:07.7725050Z             {
2026-06-15T15:10:07.7725193Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T15:10:07.7725307Z               "line": 40
2026-06-15T15:10:07.7725404Z             }
2026-06-15T15:10:07.7725507Z           ]
2026-06-15T15:10:07.7725607Z         },
2026-06-15T15:10:07.7725708Z         "int": {
2026-06-15T15:10:07.7725832Z           "complete": false,
2026-06-15T15:10:07.7725941Z           "evidence": []
2026-06-15T15:10:07.7726151Z         },
2026-06-15T15:10:07.7726266Z         "unit": {
2026-06-15T15:10:07.7726387Z           "complete": true,
2026-06-15T15:10:07.7726494Z           "evidence": [
2026-06-15T15:10:07.7726590Z             {
2026-06-15T15:10:07.7726748Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T15:10:07.7726856Z               "line": 212
2026-06-15T15:10:07.7726979Z             },
2026-06-15T15:10:07.7727086Z             {
2026-06-15T15:10:07.7727241Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T15:10:07.7727352Z               "line": 136
2026-06-15T15:10:07.7727448Z             },
2026-06-15T15:10:07.7727551Z             {
2026-06-15T15:10:07.7727705Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T15:10:07.7727814Z               "line": 685
2026-06-15T15:10:07.7727915Z             },
2026-06-15T15:10:07.7728015Z             {
2026-06-15T15:10:07.7728157Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T15:10:07.7728283Z               "line": 224
2026-06-15T15:10:07.7728387Z             },
2026-06-15T15:10:07.7728487Z             {
2026-06-15T15:10:07.7728631Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T15:10:07.7728744Z               "line": 206
2026-06-15T15:10:07.7728844Z             },
2026-06-15T15:10:07.7729025Z             {
2026-06-15T15:10:07.7729163Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T15:10:07.7729277Z               "line": 112
2026-06-15T15:10:07.7729385Z             },
2026-06-15T15:10:07.7729479Z             {
2026-06-15T15:10:07.7729629Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T15:10:07.7729733Z               "line": 157
2026-06-15T15:10:07.7729847Z             },
2026-06-15T15:10:07.7729953Z             {
2026-06-15T15:10:07.7730104Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T15:10:07.7730215Z               "line": 215
2026-06-15T15:10:07.7730314Z             },
2026-06-15T15:10:07.7730423Z             {
2026-06-15T15:10:07.7730568Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T15:10:07.7730677Z               "line": 141
2026-06-15T15:10:07.7730777Z             },
2026-06-15T15:10:07.7730873Z             {
2026-06-15T15:10:07.7731020Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T15:10:07.7731135Z               "line": 162
2026-06-15T15:10:07.7731240Z             }
2026-06-15T15:10:07.7731335Z           ]
2026-06-15T15:10:07.7731440Z         }
2026-06-15T15:10:07.7731541Z       }
2026-06-15T15:10:07.7731654Z     },
2026-06-15T15:10:07.7731750Z     {
2026-06-15T15:10:07.7731893Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-15T15:10:07.7732087Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-15T15:10:07.7732201Z       "requiredStages": [
2026-06-15T15:10:07.7732313Z         "impl",
2026-06-15T15:10:07.7732419Z         "unit"
2026-06-15T15:10:07.7732519Z       ],
2026-06-15T15:10:07.7732637Z       "stages": {
2026-06-15T15:10:07.7732738Z         "doc": {
2026-06-15T15:10:07.7732862Z           "complete": false,
2026-06-15T15:10:07.7732966Z           "evidence": []
2026-06-15T15:10:07.7733068Z         },
2026-06-15T15:10:07.7733172Z         "impl": {
2026-06-15T15:10:07.7733290Z           "complete": true,
2026-06-15T15:10:07.7733534Z           "evidence": [
2026-06-15T15:10:07.7733639Z             {
2026-06-15T15:10:07.7733788Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.7733897Z               "line": 95
2026-06-15T15:10:07.7733997Z             },
2026-06-15T15:10:07.7734093Z             {
2026-06-15T15:10:07.7734231Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.7734346Z               "line": 94
2026-06-15T15:10:07.7734446Z             }
2026-06-15T15:10:07.7734549Z           ]
2026-06-15T15:10:07.7734649Z         },
2026-06-15T15:10:07.7734754Z         "int": {
2026-06-15T15:10:07.7734871Z           "complete": false,
2026-06-15T15:10:07.7735096Z           "evidence": []
2026-06-15T15:10:07.7735195Z         },
2026-06-15T15:10:07.7735300Z         "unit": {
2026-06-15T15:10:07.7735419Z           "complete": true,
2026-06-15T15:10:07.7735519Z           "evidence": [
2026-06-15T15:10:07.7735615Z             {
2026-06-15T15:10:07.7735753Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.7735881Z               "line": 250
2026-06-15T15:10:07.7735988Z             },
2026-06-15T15:10:07.7736091Z             {
2026-06-15T15:10:07.7736234Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T15:10:07.7736340Z               "line": 198
2026-06-15T15:10:07.7736445Z             },
2026-06-15T15:10:07.7736539Z             {
2026-06-15T15:10:07.7736688Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.7736802Z               "line": 487
2026-06-15T15:10:07.7736908Z             },
2026-06-15T15:10:07.7737003Z             {
2026-06-15T15:10:07.7737141Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.7737261Z               "line": 520
2026-06-15T15:10:07.7737364Z             }
2026-06-15T15:10:07.7737464Z           ]
2026-06-15T15:10:07.7737574Z         }
2026-06-15T15:10:07.7737674Z       }
2026-06-15T15:10:07.7737783Z     },
2026-06-15T15:10:07.7737874Z     {
2026-06-15T15:10:07.7738017Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-15T15:10:07.7738228Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-15T15:10:07.7738351Z       "requiredStages": [
2026-06-15T15:10:07.7738450Z         "impl",
2026-06-15T15:10:07.7738561Z         "unit"
2026-06-15T15:10:07.7738661Z       ],
2026-06-15T15:10:07.7738765Z       "stages": {
2026-06-15T15:10:07.7738876Z         "doc": {
2026-06-15T15:10:07.7739071Z           "complete": false,
2026-06-15T15:10:07.7739177Z           "evidence": []
2026-06-15T15:10:07.7739290Z         },
2026-06-15T15:10:07.7739400Z         "impl": {
2026-06-15T15:10:07.7739511Z           "complete": true,
2026-06-15T15:10:07.7739633Z           "evidence": [
2026-06-15T15:10:07.7739732Z             {
2026-06-15T15:10:07.7739875Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7740002Z               "line": 262
2026-06-15T15:10:07.7740102Z             },
2026-06-15T15:10:07.7740203Z             {
2026-06-15T15:10:07.7740349Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7740455Z               "line": 307
2026-06-15T15:10:07.7740565Z             },
2026-06-15T15:10:07.7740664Z             {
2026-06-15T15:10:07.7740808Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7740927Z               "line": 319
2026-06-15T15:10:07.7741022Z             }
2026-06-15T15:10:07.7741133Z           ]
2026-06-15T15:10:07.7741232Z         },
2026-06-15T15:10:07.7741342Z         "int": {
2026-06-15T15:10:07.7741457Z           "complete": false,
2026-06-15T15:10:07.7741571Z           "evidence": []
2026-06-15T15:10:07.7741676Z         },
2026-06-15T15:10:07.7741781Z         "unit": {
2026-06-15T15:10:07.7744519Z           "complete": true,
2026-06-15T15:10:07.7744668Z           "evidence": [
2026-06-15T15:10:07.7744781Z             {
2026-06-15T15:10:07.7744930Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7745053Z               "line": 455
2026-06-15T15:10:07.7745300Z             },
2026-06-15T15:10:07.7745402Z             {
2026-06-15T15:10:07.7745555Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.7745656Z               "line": 499
2026-06-15T15:10:07.7745764Z             }
2026-06-15T15:10:07.7745865Z           ]
2026-06-15T15:10:07.7745965Z         }
2026-06-15T15:10:07.7746060Z       }
2026-06-15T15:10:07.7746150Z     },
2026-06-15T15:10:07.7746257Z     {
2026-06-15T15:10:07.7746380Z       "id": "REQ-HOST-RUN-1",
2026-06-15T15:10:07.7749020Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-15T15:10:07.7749268Z       "requiredStages": [
2026-06-15T15:10:07.7749413Z         "impl",
2026-06-15T15:10:07.7749511Z         "unit",
2026-06-15T15:10:07.7749621Z         "int"
2026-06-15T15:10:07.7749737Z       ],
2026-06-15T15:10:07.7749836Z       "stages": {
2026-06-15T15:10:07.7749936Z         "doc": {
2026-06-15T15:10:07.7750057Z           "complete": false,
2026-06-15T15:10:07.7750164Z           "evidence": []
2026-06-15T15:10:07.7750273Z         },
2026-06-15T15:10:07.7750379Z         "impl": {
2026-06-15T15:10:07.7750496Z           "complete": true,
2026-06-15T15:10:07.7750604Z           "evidence": [
2026-06-15T15:10:07.7750710Z             {
2026-06-15T15:10:07.7750881Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T15:10:07.7750991Z               "line": 24
2026-06-15T15:10:07.7751092Z             },
2026-06-15T15:10:07.7751191Z             {
2026-06-15T15:10:07.7751340Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T15:10:07.7751459Z               "line": 63
2026-06-15T15:10:07.7751558Z             },
2026-06-15T15:10:07.7751655Z             {
2026-06-15T15:10:07.7751811Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T15:10:07.7751926Z               "line": 109
2026-06-15T15:10:07.7752022Z             },
2026-06-15T15:10:07.7752117Z             {
2026-06-15T15:10:07.7752260Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7752369Z               "line": 1165
2026-06-15T15:10:07.7752474Z             }
2026-06-15T15:10:07.7752575Z           ]
2026-06-15T15:10:07.7752670Z         },
2026-06-15T15:10:07.7752779Z         "int": {
2026-06-15T15:10:07.7752890Z           "complete": true,
2026-06-15T15:10:07.7753004Z           "evidence": [
2026-06-15T15:10:07.7753117Z             {
2026-06-15T15:10:07.7753260Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.7753377Z               "line": 279
2026-06-15T15:10:07.7753481Z             }
2026-06-15T15:10:07.7753591Z           ]
2026-06-15T15:10:07.7753692Z         },
2026-06-15T15:10:07.7753791Z         "unit": {
2026-06-15T15:10:07.7753907Z           "complete": true,
2026-06-15T15:10:07.7754021Z           "evidence": [
2026-06-15T15:10:07.7754125Z             {
2026-06-15T15:10:07.7754274Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T15:10:07.7754387Z               "line": 149
2026-06-15T15:10:07.7754492Z             },
2026-06-15T15:10:07.7754598Z             {
2026-06-15T15:10:07.7754749Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T15:10:07.7754865Z               "line": 169
2026-06-15T15:10:07.7754969Z             },
2026-06-15T15:10:07.7755074Z             {
2026-06-15T15:10:07.7755228Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T15:10:07.7755437Z               "line": 202
2026-06-15T15:10:07.7755538Z             }
2026-06-15T15:10:07.7755641Z           ]
2026-06-15T15:10:07.7755741Z         }
2026-06-15T15:10:07.7755841Z       }
2026-06-15T15:10:07.7755944Z     },
2026-06-15T15:10:07.7756053Z     {
2026-06-15T15:10:07.7756173Z       "id": "REQ-HOST-RUN-2",
2026-06-15T15:10:07.7757970Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-15T15:10:07.7758179Z       "requiredStages": [
2026-06-15T15:10:07.7758285Z         "impl",
2026-06-15T15:10:07.7758386Z         "unit",
2026-06-15T15:10:07.7758490Z         "int"
2026-06-15T15:10:07.7758598Z       ],
2026-06-15T15:10:07.7758708Z       "stages": {
2026-06-15T15:10:07.7758809Z         "doc": {
2026-06-15T15:10:07.7758927Z           "complete": false,
2026-06-15T15:10:07.7759119Z           "evidence": []
2026-06-15T15:10:07.7759227Z         },
2026-06-15T15:10:07.7759338Z         "impl": {
2026-06-15T15:10:07.7759458Z           "complete": true,
2026-06-15T15:10:07.7759576Z           "evidence": [
2026-06-15T15:10:07.7759682Z             {
2026-06-15T15:10:07.7759837Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T15:10:07.7759949Z               "line": 110
2026-06-15T15:10:07.7760048Z             },
2026-06-15T15:10:07.7760152Z             {
2026-06-15T15:10:07.7760292Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T15:10:07.7760400Z               "line": 113
2026-06-15T15:10:07.7760505Z             }
2026-06-15T15:10:07.7760607Z           ]
2026-06-15T15:10:07.7760711Z         },
2026-06-15T15:10:07.7760810Z         "int": {
2026-06-15T15:10:07.7760924Z           "complete": true,
2026-06-15T15:10:07.7761032Z           "evidence": [
2026-06-15T15:10:07.7761137Z             {
2026-06-15T15:10:07.7761290Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.7761403Z               "line": 454
2026-06-15T15:10:07.7761498Z             }
2026-06-15T15:10:07.7761600Z           ]
2026-06-15T15:10:07.7761699Z         },
2026-06-15T15:10:07.7761822Z         "unit": {
2026-06-15T15:10:07.7761938Z           "complete": true,
2026-06-15T15:10:07.7762047Z           "evidence": [
2026-06-15T15:10:07.7762137Z             {
2026-06-15T15:10:07.7762281Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T15:10:07.7762395Z               "line": 86
2026-06-15T15:10:07.7762496Z             }
2026-06-15T15:10:07.7762600Z           ]
2026-06-15T15:10:07.7762695Z         }
2026-06-15T15:10:07.7762796Z       }
2026-06-15T15:10:07.7762901Z     },
2026-06-15T15:10:07.7763006Z     {
2026-06-15T15:10:07.7763126Z       "id": "REQ-INFRA-1",
2026-06-15T15:10:07.7763325Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-15T15:10:07.7763446Z       "requiredStages": [],
2026-06-15T15:10:07.7763555Z       "stages": {
2026-06-15T15:10:07.7763658Z         "doc": {
2026-06-15T15:10:07.7763777Z           "complete": false,
2026-06-15T15:10:07.7763881Z           "evidence": []
2026-06-15T15:10:07.7763994Z         },
2026-06-15T15:10:07.7764094Z         "impl": {
2026-06-15T15:10:07.7764210Z           "complete": false,
2026-06-15T15:10:07.7764328Z           "evidence": []
2026-06-15T15:10:07.7764428Z         },
2026-06-15T15:10:07.7764533Z         "int": {
2026-06-15T15:10:07.7764647Z           "complete": false,
2026-06-15T15:10:07.7764872Z           "evidence": []
2026-06-15T15:10:07.7764967Z         },
2026-06-15T15:10:07.7765077Z         "unit": {
2026-06-15T15:10:07.7765186Z           "complete": false,
2026-06-15T15:10:07.7765301Z           "evidence": []
2026-06-15T15:10:07.7765407Z         }
2026-06-15T15:10:07.7765510Z       }
2026-06-15T15:10:07.7765611Z     },
2026-06-15T15:10:07.7765707Z     {
2026-06-15T15:10:07.7765825Z       "id": "REQ-INST-1",
2026-06-15T15:10:07.7766012Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-15T15:10:07.7766131Z       "requiredStages": [],
2026-06-15T15:10:07.7766243Z       "stages": {
2026-06-15T15:10:07.7766348Z         "doc": {
2026-06-15T15:10:07.7766584Z           "complete": false,
2026-06-15T15:10:07.7766695Z           "evidence": []
2026-06-15T15:10:07.7766796Z         },
2026-06-15T15:10:07.7766899Z         "impl": {
2026-06-15T15:10:07.7767010Z           "complete": false,
2026-06-15T15:10:07.7767124Z           "evidence": []
2026-06-15T15:10:07.7767232Z         },
2026-06-15T15:10:07.7767343Z         "int": {
2026-06-15T15:10:07.7767467Z           "complete": false,
2026-06-15T15:10:07.7767586Z           "evidence": []
2026-06-15T15:10:07.7767682Z         },
2026-06-15T15:10:07.7767786Z         "unit": {
2026-06-15T15:10:07.7767906Z           "complete": false,
2026-06-15T15:10:07.7768021Z           "evidence": []
2026-06-15T15:10:07.7768125Z         }
2026-06-15T15:10:07.7768225Z       }
2026-06-15T15:10:07.7768331Z     },
2026-06-15T15:10:07.7768429Z     {
2026-06-15T15:10:07.7768550Z       "id": "REQ-INST-10",
2026-06-15T15:10:07.7768793Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-15T15:10:07.7768913Z       "requiredStages": [
2026-06-15T15:10:07.7769115Z         "impl",
2026-06-15T15:10:07.7769211Z         "unit"
2026-06-15T15:10:07.7769312Z       ],
2026-06-15T15:10:07.7769411Z       "stages": {
2026-06-15T15:10:07.7769506Z         "doc": {
2026-06-15T15:10:07.7769627Z           "complete": false,
2026-06-15T15:10:07.7769745Z           "evidence": []
2026-06-15T15:10:07.7769835Z         },
2026-06-15T15:10:07.7769937Z         "impl": {
2026-06-15T15:10:07.7770055Z           "complete": true,
2026-06-15T15:10:07.7770169Z           "evidence": [
2026-06-15T15:10:07.7770265Z             {
2026-06-15T15:10:07.7770417Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7770523Z               "line": 616
2026-06-15T15:10:07.7770623Z             },
2026-06-15T15:10:07.7770722Z             {
2026-06-15T15:10:07.7770871Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7770994Z               "line": 693
2026-06-15T15:10:07.7771095Z             },
2026-06-15T15:10:07.7771201Z             {
2026-06-15T15:10:07.7771346Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T15:10:07.7771456Z               "line": 13
2026-06-15T15:10:07.7771561Z             },
2026-06-15T15:10:07.7771658Z             {
2026-06-15T15:10:07.7771792Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T15:10:07.7771908Z               "line": 67
2026-06-15T15:10:07.7772011Z             },
2026-06-15T15:10:07.7772112Z             {
2026-06-15T15:10:07.7772251Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.7772359Z               "line": 18
2026-06-15T15:10:07.7772461Z             },
2026-06-15T15:10:07.7772565Z             {
2026-06-15T15:10:07.7772698Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.7772813Z               "line": 444
2026-06-15T15:10:07.7772904Z             }
2026-06-15T15:10:07.7773003Z           ]
2026-06-15T15:10:07.7773099Z         },
2026-06-15T15:10:07.7773223Z         "int": {
2026-06-15T15:10:07.7773341Z           "complete": false,
2026-06-15T15:10:07.7773438Z           "evidence": []
2026-06-15T15:10:07.7773537Z         },
2026-06-15T15:10:07.7773637Z         "unit": {
2026-06-15T15:10:07.7773753Z           "complete": true,
2026-06-15T15:10:07.7773856Z           "evidence": [
2026-06-15T15:10:07.7774063Z             {
2026-06-15T15:10:07.7774218Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7774328Z               "line": 900
2026-06-15T15:10:07.7774432Z             },
2026-06-15T15:10:07.7774535Z             {
2026-06-15T15:10:07.7774678Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7774794Z               "line": 1233
2026-06-15T15:10:07.7774893Z             },
2026-06-15T15:10:07.7774998Z             {
2026-06-15T15:10:07.7775141Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7775250Z               "line": 1244
2026-06-15T15:10:07.7775347Z             },
2026-06-15T15:10:07.7775555Z             {
2026-06-15T15:10:07.7775704Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7775808Z               "line": 1260
2026-06-15T15:10:07.7775913Z             },
2026-06-15T15:10:07.7776014Z             {
2026-06-15T15:10:07.7776156Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7776262Z               "line": 1276
2026-06-15T15:10:07.7776367Z             },
2026-06-15T15:10:07.7776471Z             {
2026-06-15T15:10:07.7776616Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7776728Z               "line": 1298
2026-06-15T15:10:07.7776832Z             },
2026-06-15T15:10:07.7776947Z             {
2026-06-15T15:10:07.7777083Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7777197Z               "line": 1603
2026-06-15T15:10:07.7777303Z             },
2026-06-15T15:10:07.7777407Z             {
2026-06-15T15:10:07.7777545Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T15:10:07.7777665Z               "line": 130
2026-06-15T15:10:07.7777774Z             },
2026-06-15T15:10:07.7777875Z             {
2026-06-15T15:10:07.7778018Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T15:10:07.7778131Z               "line": 167
2026-06-15T15:10:07.7778237Z             },
2026-06-15T15:10:07.7778337Z             {
2026-06-15T15:10:07.7778470Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T15:10:07.7778585Z               "line": 175
2026-06-15T15:10:07.7778685Z             },
2026-06-15T15:10:07.7778785Z             {
2026-06-15T15:10:07.7778924Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T15:10:07.7779115Z               "line": 183
2026-06-15T15:10:07.7779211Z             },
2026-06-15T15:10:07.7779314Z             {
2026-06-15T15:10:07.7779449Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.7779554Z               "line": 896
2026-06-15T15:10:07.7779652Z             }
2026-06-15T15:10:07.7779766Z           ]
2026-06-15T15:10:07.7779858Z         }
2026-06-15T15:10:07.7779962Z       }
2026-06-15T15:10:07.7780057Z     },
2026-06-15T15:10:07.7780158Z     {
2026-06-15T15:10:07.7780268Z       "id": "REQ-INST-11",
2026-06-15T15:10:07.7780511Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-15T15:10:07.7780634Z       "requiredStages": [
2026-06-15T15:10:07.7780739Z         "impl",
2026-06-15T15:10:07.7780835Z         "unit"
2026-06-15T15:10:07.7780940Z       ],
2026-06-15T15:10:07.7781040Z       "stages": {
2026-06-15T15:10:07.7781140Z         "doc": {
2026-06-15T15:10:07.7781259Z           "complete": false,
2026-06-15T15:10:07.7781374Z           "evidence": []
2026-06-15T15:10:07.7781474Z         },
2026-06-15T15:10:07.7781583Z         "impl": {
2026-06-15T15:10:07.7781698Z           "complete": true,
2026-06-15T15:10:07.7781813Z           "evidence": [
2026-06-15T15:10:07.7781911Z             {
2026-06-15T15:10:07.7782068Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7782172Z               "line": 482
2026-06-15T15:10:07.7782276Z             },
2026-06-15T15:10:07.7782371Z             {
2026-06-15T15:10:07.7782524Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7782638Z               "line": 297
2026-06-15T15:10:07.7782829Z             },
2026-06-15T15:10:07.7782938Z             {
2026-06-15T15:10:07.7783110Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T15:10:07.7783215Z               "line": 59
2026-06-15T15:10:07.7783316Z             },
2026-06-15T15:10:07.7783420Z             {
2026-06-15T15:10:07.7783553Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7783669Z               "line": 4738
2026-06-15T15:10:07.7783768Z             },
2026-06-15T15:10:07.7783926Z             {
2026-06-15T15:10:07.7784055Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7784168Z               "line": 6155
2026-06-15T15:10:07.7784370Z             }
2026-06-15T15:10:07.7784479Z           ]
2026-06-15T15:10:07.7784585Z         },
2026-06-15T15:10:07.7784694Z         "int": {
2026-06-15T15:10:07.7784812Z           "complete": false,
2026-06-15T15:10:07.7784926Z           "evidence": []
2026-06-15T15:10:07.7785025Z         },
2026-06-15T15:10:07.7785133Z         "unit": {
2026-06-15T15:10:07.7785253Z           "complete": true,
2026-06-15T15:10:07.7785363Z           "evidence": [
2026-06-15T15:10:07.7785462Z             {
2026-06-15T15:10:07.7785620Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7785720Z               "line": 1403
2026-06-15T15:10:07.7785824Z             },
2026-06-15T15:10:07.7785926Z             {
2026-06-15T15:10:07.7786082Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7786197Z               "line": 1436
2026-06-15T15:10:07.7786301Z             },
2026-06-15T15:10:07.7786397Z             {
2026-06-15T15:10:07.7786551Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7786673Z               "line": 527
2026-06-15T15:10:07.7786774Z             },
2026-06-15T15:10:07.7786880Z             {
2026-06-15T15:10:07.7787031Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T15:10:07.7787137Z               "line": 160
2026-06-15T15:10:07.7787251Z             },
2026-06-15T15:10:07.7787350Z             {
2026-06-15T15:10:07.7787493Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T15:10:07.7787601Z               "line": 190
2026-06-15T15:10:07.7787700Z             },
2026-06-15T15:10:07.7787805Z             {
2026-06-15T15:10:07.7787944Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T15:10:07.7788052Z               "line": 225
2026-06-15T15:10:07.7788154Z             },
2026-06-15T15:10:07.7788254Z             {
2026-06-15T15:10:07.7788377Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7788487Z               "line": 6544
2026-06-15T15:10:07.7788606Z             }
2026-06-15T15:10:07.7788706Z           ]
2026-06-15T15:10:07.7788812Z         }
2026-06-15T15:10:07.7788916Z       }
2026-06-15T15:10:07.7789074Z     },
2026-06-15T15:10:07.7789169Z     {
2026-06-15T15:10:07.7789288Z       "id": "REQ-INST-12",
2026-06-15T15:10:07.7789603Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-15T15:10:07.7789728Z       "requiredStages": [
2026-06-15T15:10:07.7789836Z         "impl",
2026-06-15T15:10:07.7789937Z         "unit"
2026-06-15T15:10:07.7790038Z       ],
2026-06-15T15:10:07.7790142Z       "stages": {
2026-06-15T15:10:07.7790236Z         "doc": {
2026-06-15T15:10:07.7790360Z           "complete": false,
2026-06-15T15:10:07.7790461Z           "evidence": []
2026-06-15T15:10:07.7790565Z         },
2026-06-15T15:10:07.7790675Z         "impl": {
2026-06-15T15:10:07.7790799Z           "complete": true,
2026-06-15T15:10:07.7790908Z           "evidence": [
2026-06-15T15:10:07.7791033Z             {
2026-06-15T15:10:07.7791194Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7791294Z               "line": 534
2026-06-15T15:10:07.7791395Z             },
2026-06-15T15:10:07.7791500Z             {
2026-06-15T15:10:07.7791653Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7791876Z               "line": 627
2026-06-15T15:10:07.7791973Z             },
2026-06-15T15:10:07.7792072Z             {
2026-06-15T15:10:07.7792215Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7792330Z               "line": 707
2026-06-15T15:10:07.7792429Z             },
2026-06-15T15:10:07.7792538Z             {
2026-06-15T15:10:07.7792685Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7792798Z               "line": 96
2026-06-15T15:10:07.7792908Z             },
2026-06-15T15:10:07.7793008Z             {
2026-06-15T15:10:07.7793160Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7793371Z               "line": 269
2026-06-15T15:10:07.7793474Z             },
2026-06-15T15:10:07.7793576Z             {
2026-06-15T15:10:07.7793723Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T15:10:07.7793842Z               "line": 135
2026-06-15T15:10:07.7793943Z             }
2026-06-15T15:10:07.7794052Z           ]
2026-06-15T15:10:07.7794157Z         },
2026-06-15T15:10:07.7794263Z         "int": {
2026-06-15T15:10:07.7794376Z           "complete": false,
2026-06-15T15:10:07.7794544Z           "evidence": []
2026-06-15T15:10:07.7794652Z         },
2026-06-15T15:10:07.7794748Z         "unit": {
2026-06-15T15:10:07.7794864Z           "complete": true,
2026-06-15T15:10:07.7794967Z           "evidence": [
2026-06-15T15:10:07.7795077Z             {
2026-06-15T15:10:07.7795217Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7795324Z               "line": 1478
2026-06-15T15:10:07.7795433Z             },
2026-06-15T15:10:07.7795534Z             {
2026-06-15T15:10:07.7795698Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7795808Z               "line": 1501
2026-06-15T15:10:07.7795914Z             },
2026-06-15T15:10:07.7796022Z             {
2026-06-15T15:10:07.7796172Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7796290Z               "line": 1538
2026-06-15T15:10:07.7796394Z             },
2026-06-15T15:10:07.7796500Z             {
2026-06-15T15:10:07.7796637Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.7796758Z               "line": 457
2026-06-15T15:10:07.7796862Z             },
2026-06-15T15:10:07.7796966Z             {
2026-06-15T15:10:07.7797121Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T15:10:07.7797233Z               "line": 172
2026-06-15T15:10:07.7797343Z             },
2026-06-15T15:10:07.7797445Z             {
2026-06-15T15:10:07.7797601Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T15:10:07.7797721Z               "line": 193
2026-06-15T15:10:07.7797825Z             },
2026-06-15T15:10:07.7797934Z             {
2026-06-15T15:10:07.7798082Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T15:10:07.7798198Z               "line": 219
2026-06-15T15:10:07.7798302Z             }
2026-06-15T15:10:07.7798404Z           ]
2026-06-15T15:10:07.7798508Z         }
2026-06-15T15:10:07.7798608Z       }
2026-06-15T15:10:07.7798705Z     },
2026-06-15T15:10:07.7798805Z     {
2026-06-15T15:10:07.7798913Z       "id": "REQ-INST-13",
2026-06-15T15:10:07.7799176Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-15T15:10:07.7799300Z       "requiredStages": [
2026-06-15T15:10:07.7799410Z         "impl",
2026-06-15T15:10:07.7799509Z         "unit"
2026-06-15T15:10:07.7799615Z       ],
2026-06-15T15:10:07.7799706Z       "stages": {
2026-06-15T15:10:07.7799815Z         "doc": {
2026-06-15T15:10:07.7799935Z           "complete": false,
2026-06-15T15:10:07.7800062Z           "evidence": []
2026-06-15T15:10:07.7800163Z         },
2026-06-15T15:10:07.7800264Z         "impl": {
2026-06-15T15:10:07.7800382Z           "complete": true,
2026-06-15T15:10:07.7800492Z           "evidence": [
2026-06-15T15:10:07.7800588Z             {
2026-06-15T15:10:07.7800725Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.7800949Z               "line": 100
2026-06-15T15:10:07.7801049Z             },
2026-06-15T15:10:07.7801153Z             {
2026-06-15T15:10:07.7801297Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T15:10:07.7801411Z               "line": 158
2026-06-15T15:10:07.7801521Z             }
2026-06-15T15:10:07.7801622Z           ]
2026-06-15T15:10:07.7801721Z         },
2026-06-15T15:10:07.7801831Z         "int": {
2026-06-15T15:10:07.7801941Z           "complete": false,
2026-06-15T15:10:07.7802046Z           "evidence": []
2026-06-15T15:10:07.7802145Z         },
2026-06-15T15:10:07.7802260Z         "unit": {
2026-06-15T15:10:07.7802489Z           "complete": true,
2026-06-15T15:10:07.7802609Z           "evidence": [
2026-06-15T15:10:07.7802713Z             {
2026-06-15T15:10:07.7802858Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T15:10:07.7802970Z               "line": 248
2026-06-15T15:10:07.7803069Z             },
2026-06-15T15:10:07.7803175Z             {
2026-06-15T15:10:07.7803315Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T15:10:07.7803429Z               "line": 266
2026-06-15T15:10:07.7803530Z             }
2026-06-15T15:10:07.7803630Z           ]
2026-06-15T15:10:07.7803739Z         }
2026-06-15T15:10:07.7803840Z       }
2026-06-15T15:10:07.7803945Z     },
2026-06-15T15:10:07.7804044Z     {
2026-06-15T15:10:07.7804165Z       "id": "REQ-INST-14",
2026-06-15T15:10:07.7804579Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-15T15:10:07.7804688Z       "requiredStages": [
2026-06-15T15:10:07.7804799Z         "doc",
2026-06-15T15:10:07.7804898Z         "impl",
2026-06-15T15:10:07.7805012Z         "unit"
2026-06-15T15:10:07.7805114Z       ],
2026-06-15T15:10:07.7805227Z       "stages": {
2026-06-15T15:10:07.7805327Z         "doc": {
2026-06-15T15:10:07.7805433Z           "complete": true,
2026-06-15T15:10:07.7805551Z           "evidence": [
2026-06-15T15:10:07.7805657Z             {
2026-06-15T15:10:07.7805791Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.7805894Z               "line": 532
2026-06-15T15:10:07.7806003Z             },
2026-06-15T15:10:07.7806108Z             {
2026-06-15T15:10:07.7806234Z               "path": "docs/STORAGE.md",
2026-06-15T15:10:07.7806349Z               "line": 49
2026-06-15T15:10:07.7806454Z             }
2026-06-15T15:10:07.7806558Z           ]
2026-06-15T15:10:07.7806664Z         },
2026-06-15T15:10:07.7806765Z         "impl": {
2026-06-15T15:10:07.7806883Z           "complete": true,
2026-06-15T15:10:07.7807003Z           "evidence": [
2026-06-15T15:10:07.7807103Z             {
2026-06-15T15:10:07.7807265Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7807385Z               "line": 404
2026-06-15T15:10:07.7807489Z             },
2026-06-15T15:10:07.7807598Z             {
2026-06-15T15:10:07.7807746Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7807855Z               "line": 346
2026-06-15T15:10:07.7807957Z             },
2026-06-15T15:10:07.7808057Z             {
2026-06-15T15:10:07.7808199Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7808310Z               "line": 221
2026-06-15T15:10:07.7808409Z             },
2026-06-15T15:10:07.7808508Z             {
2026-06-15T15:10:07.7808642Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7808754Z               "line": 1378
2026-06-15T15:10:07.7808853Z             }
2026-06-15T15:10:07.7809022Z           ]
2026-06-15T15:10:07.7809130Z         },
2026-06-15T15:10:07.7809255Z         "int": {
2026-06-15T15:10:07.7809370Z           "complete": false,
2026-06-15T15:10:07.7809478Z           "evidence": []
2026-06-15T15:10:07.7809575Z         },
2026-06-15T15:10:07.7809679Z         "unit": {
2026-06-15T15:10:07.7809798Z           "complete": true,
2026-06-15T15:10:07.7809913Z           "evidence": [
2026-06-15T15:10:07.7810113Z             {
2026-06-15T15:10:07.7810266Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7810370Z               "line": 1111
2026-06-15T15:10:07.7810470Z             },
2026-06-15T15:10:07.7810572Z             {
2026-06-15T15:10:07.7810727Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7810838Z               "line": 912
2026-06-15T15:10:07.7810942Z             },
2026-06-15T15:10:07.7811047Z             {
2026-06-15T15:10:07.7811187Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7811304Z               "line": 1173
2026-06-15T15:10:07.7811509Z             },
2026-06-15T15:10:07.7811605Z             {
2026-06-15T15:10:07.7811747Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7811862Z               "line": 490
2026-06-15T15:10:07.7811957Z             },
2026-06-15T15:10:07.7812061Z             {
2026-06-15T15:10:07.7812191Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7812305Z               "line": 6620
2026-06-15T15:10:07.7812410Z             }
2026-06-15T15:10:07.7812510Z           ]
2026-06-15T15:10:07.7812615Z         }
2026-06-15T15:10:07.7812710Z       }
2026-06-15T15:10:07.7812811Z     },
2026-06-15T15:10:07.7812916Z     {
2026-06-15T15:10:07.7813030Z       "id": "REQ-INST-15",
2026-06-15T15:10:07.7813787Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-15T15:10:07.7813914Z       "requiredStages": [
2026-06-15T15:10:07.7814018Z         "doc",
2026-06-15T15:10:07.7814129Z         "impl",
2026-06-15T15:10:07.7814219Z         "unit"
2026-06-15T15:10:07.7814319Z       ],
2026-06-15T15:10:07.7814420Z       "stages": {
2026-06-15T15:10:07.7814529Z         "doc": {
2026-06-15T15:10:07.7814657Z           "complete": true,
2026-06-15T15:10:07.7814763Z           "evidence": [
2026-06-15T15:10:07.7814862Z             {
2026-06-15T15:10:07.7815068Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-15T15:10:07.7815182Z               "line": 3
2026-06-15T15:10:07.7815282Z             }
2026-06-15T15:10:07.7815373Z           ]
2026-06-15T15:10:07.7815473Z         },
2026-06-15T15:10:07.7815577Z         "impl": {
2026-06-15T15:10:07.7815702Z           "complete": true,
2026-06-15T15:10:07.7815816Z           "evidence": [
2026-06-15T15:10:07.7815922Z             {
2026-06-15T15:10:07.7816078Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7816197Z               "line": 353
2026-06-15T15:10:07.7816299Z             },
2026-06-15T15:10:07.7816393Z             {
2026-06-15T15:10:07.7816535Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T15:10:07.7816649Z               "line": 60
2026-06-15T15:10:07.7816762Z             },
2026-06-15T15:10:07.7816866Z             {
2026-06-15T15:10:07.7817024Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7817142Z               "line": 368
2026-06-15T15:10:07.7817249Z             },
2026-06-15T15:10:07.7817348Z             {
2026-06-15T15:10:07.7817495Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7817611Z               "line": 417
2026-06-15T15:10:07.7817716Z             },
2026-06-15T15:10:07.7817820Z             {
2026-06-15T15:10:07.7817964Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T15:10:07.7818068Z               "line": 19
2026-06-15T15:10:07.7818168Z             },
2026-06-15T15:10:07.7818269Z             {
2026-06-15T15:10:07.7818411Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T15:10:07.7818532Z               "line": 70
2026-06-15T15:10:07.7818626Z             },
2026-06-15T15:10:07.7818722Z             {
2026-06-15T15:10:07.7818856Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T15:10:07.7819111Z               "line": 96
2026-06-15T15:10:07.7819211Z             },
2026-06-15T15:10:07.7819319Z             {
2026-06-15T15:10:07.7819462Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T15:10:07.7819562Z               "line": 121
2026-06-15T15:10:07.7819671Z             },
2026-06-15T15:10:07.7819771Z             {
2026-06-15T15:10:07.7819905Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T15:10:07.7820019Z               "line": 172
2026-06-15T15:10:07.7820116Z             },
2026-06-15T15:10:07.7820215Z             {
2026-06-15T15:10:07.7820362Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.7820582Z               "line": 138
2026-06-15T15:10:07.7820687Z             },
2026-06-15T15:10:07.7820788Z             {
2026-06-15T15:10:07.7820921Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7821035Z               "line": 1270
2026-06-15T15:10:07.7821137Z             }
2026-06-15T15:10:07.7821245Z           ]
2026-06-15T15:10:07.7821350Z         },
2026-06-15T15:10:07.7821461Z         "int": {
2026-06-15T15:10:07.7821584Z           "complete": false,
2026-06-15T15:10:07.7821704Z           "evidence": []
2026-06-15T15:10:07.7821804Z         },
2026-06-15T15:10:07.7821902Z         "unit": {
2026-06-15T15:10:07.7822007Z           "complete": true,
2026-06-15T15:10:07.7822122Z           "evidence": [
2026-06-15T15:10:07.7822226Z             {
2026-06-15T15:10:07.7822389Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7822499Z               "line": 577
2026-06-15T15:10:07.7822608Z             },
2026-06-15T15:10:07.7822723Z             {
2026-06-15T15:10:07.7822874Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.7822980Z               "line": 638
2026-06-15T15:10:07.7823080Z             },
2026-06-15T15:10:07.7823189Z             {
2026-06-15T15:10:07.7823324Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T15:10:07.7823437Z               "line": 213
2026-06-15T15:10:07.7823542Z             },
2026-06-15T15:10:07.7823639Z             {
2026-06-15T15:10:07.7823775Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T15:10:07.7823881Z               "line": 249
2026-06-15T15:10:07.7823992Z             },
2026-06-15T15:10:07.7824090Z             {
2026-06-15T15:10:07.7824232Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T15:10:07.7824342Z               "line": 262
2026-06-15T15:10:07.7824450Z             },
2026-06-15T15:10:07.7824549Z             {
2026-06-15T15:10:07.7824689Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T15:10:07.7824807Z               "line": 338
2026-06-15T15:10:07.7824907Z             },
2026-06-15T15:10:07.7825018Z             {
2026-06-15T15:10:07.7825160Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.7825271Z               "line": 541
2026-06-15T15:10:07.7825371Z             },
2026-06-15T15:10:07.7825470Z             {
2026-06-15T15:10:07.7825604Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7825718Z               "line": 6557
2026-06-15T15:10:07.7825813Z             },
2026-06-15T15:10:07.7828505Z             {
2026-06-15T15:10:07.7828671Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7828796Z               "line": 8251
2026-06-15T15:10:07.7828895Z             }
2026-06-15T15:10:07.7829092Z           ]
2026-06-15T15:10:07.7829191Z         }
2026-06-15T15:10:07.7829296Z       }
2026-06-15T15:10:07.7829392Z     },
2026-06-15T15:10:07.7829497Z     {
2026-06-15T15:10:07.7829614Z       "id": "REQ-INST-2",
2026-06-15T15:10:07.7829771Z       "title": "Per-node files, synced Psyche mind",
2026-06-15T15:10:07.7829907Z       "requiredStages": [
2026-06-15T15:10:07.7830017Z         "impl",
2026-06-15T15:10:07.7830123Z         "unit"
2026-06-15T15:10:07.7830227Z       ],
2026-06-15T15:10:07.7830331Z       "stages": {
2026-06-15T15:10:07.7830438Z         "doc": {
2026-06-15T15:10:07.7830686Z           "complete": false,
2026-06-15T15:10:07.7830804Z           "evidence": []
2026-06-15T15:10:07.7830903Z         },
2026-06-15T15:10:07.7831010Z         "impl": {
2026-06-15T15:10:07.7831132Z           "complete": true,
2026-06-15T15:10:07.7831237Z           "evidence": [
2026-06-15T15:10:07.7831334Z             {
2026-06-15T15:10:07.7831496Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7831610Z               "line": 88
2026-06-15T15:10:07.7831701Z             },
2026-06-15T15:10:07.7831800Z             {
2026-06-15T15:10:07.7831945Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T15:10:07.7832054Z               "line": 28
2026-06-15T15:10:07.7832260Z             },
2026-06-15T15:10:07.7832359Z             {
2026-06-15T15:10:07.7832505Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T15:10:07.7832610Z               "line": 74
2026-06-15T15:10:07.7832716Z             },
2026-06-15T15:10:07.7832819Z             {
2026-06-15T15:10:07.7832974Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T15:10:07.7833082Z               "line": 96
2026-06-15T15:10:07.7833177Z             },
2026-06-15T15:10:07.7833283Z             {
2026-06-15T15:10:07.7833425Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T15:10:07.7833526Z               "line": 86
2026-06-15T15:10:07.7833631Z             },
2026-06-15T15:10:07.7833731Z             {
2026-06-15T15:10:07.7833870Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T15:10:07.7833974Z               "line": 118
2026-06-15T15:10:07.7834074Z             }
2026-06-15T15:10:07.7834175Z           ]
2026-06-15T15:10:07.7834275Z         },
2026-06-15T15:10:07.7834379Z         "int": {
2026-06-15T15:10:07.7834494Z           "complete": false,
2026-06-15T15:10:07.7834604Z           "evidence": []
2026-06-15T15:10:07.7834702Z         },
2026-06-15T15:10:07.7834807Z         "unit": {
2026-06-15T15:10:07.7834926Z           "complete": true,
2026-06-15T15:10:07.7835029Z           "evidence": [
2026-06-15T15:10:07.7835134Z             {
2026-06-15T15:10:07.7835273Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T15:10:07.7835386Z               "line": 250
2026-06-15T15:10:07.7835487Z             },
2026-06-15T15:10:07.7835582Z             {
2026-06-15T15:10:07.7835725Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T15:10:07.7835836Z               "line": 280
2026-06-15T15:10:07.7835945Z             }
2026-06-15T15:10:07.7836035Z           ]
2026-06-15T15:10:07.7836141Z         }
2026-06-15T15:10:07.7836240Z       }
2026-06-15T15:10:07.7836340Z     },
2026-06-15T15:10:07.7836451Z     {
2026-06-15T15:10:07.7836574Z       "id": "REQ-INST-3",
2026-06-15T15:10:07.7836756Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-15T15:10:07.7836874Z       "requiredStages": [
2026-06-15T15:10:07.7836984Z         "doc",
2026-06-15T15:10:07.7837090Z         "impl",
2026-06-15T15:10:07.7837189Z         "unit"
2026-06-15T15:10:07.7837289Z       ],
2026-06-15T15:10:07.7837390Z       "stages": {
2026-06-15T15:10:07.7837490Z         "doc": {
2026-06-15T15:10:07.7837598Z           "complete": true,
2026-06-15T15:10:07.7837712Z           "evidence": [
2026-06-15T15:10:07.7837812Z             {
2026-06-15T15:10:07.7837953Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-15T15:10:07.7838059Z               "line": 3
2026-06-15T15:10:07.7838159Z             }
2026-06-15T15:10:07.7838263Z           ]
2026-06-15T15:10:07.7838364Z         },
2026-06-15T15:10:07.7838474Z         "impl": {
2026-06-15T15:10:07.7838587Z           "complete": true,
2026-06-15T15:10:07.7838694Z           "evidence": [
2026-06-15T15:10:07.7838798Z             {
2026-06-15T15:10:07.7839023Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T15:10:07.7839131Z               "line": 59
2026-06-15T15:10:07.7839236Z             },
2026-06-15T15:10:07.7839347Z             {
2026-06-15T15:10:07.7839493Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.7839723Z               "line": 480
2026-06-15T15:10:07.7839817Z             },
2026-06-15T15:10:07.7839919Z             {
2026-06-15T15:10:07.7840066Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7840174Z               "line": 204
2026-06-15T15:10:07.7840279Z             },
2026-06-15T15:10:07.7840378Z             {
2026-06-15T15:10:07.7840524Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7840635Z               "line": 334
2026-06-15T15:10:07.7840740Z             },
2026-06-15T15:10:07.7840844Z             {
2026-06-15T15:10:07.7840983Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7841207Z               "line": 368
2026-06-15T15:10:07.7841307Z             },
2026-06-15T15:10:07.7841412Z             {
2026-06-15T15:10:07.7841551Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T15:10:07.7841655Z               "line": 74
2026-06-15T15:10:07.7841769Z             },
2026-06-15T15:10:07.7841865Z             {
2026-06-15T15:10:07.7842027Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7842127Z               "line": 234
2026-06-15T15:10:07.7842228Z             },
2026-06-15T15:10:07.7842332Z             {
2026-06-15T15:10:07.7842490Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7842595Z               "line": 390
2026-06-15T15:10:07.7842684Z             },
2026-06-15T15:10:07.7842786Z             {
2026-06-15T15:10:07.7842933Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7843046Z               "line": 45
2026-06-15T15:10:07.7843161Z             },
2026-06-15T15:10:07.7843262Z             {
2026-06-15T15:10:07.7843413Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7843519Z               "line": 114
2026-06-15T15:10:07.7843619Z             },
2026-06-15T15:10:07.7843713Z             {
2026-06-15T15:10:07.7843867Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7843976Z               "line": 152
2026-06-15T15:10:07.7844071Z             },
2026-06-15T15:10:07.7844172Z             {
2026-06-15T15:10:07.7844315Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7844435Z               "line": 168
2026-06-15T15:10:07.7844539Z             },
2026-06-15T15:10:07.7844639Z             {
2026-06-15T15:10:07.7844797Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7844910Z               "line": 178
2026-06-15T15:10:07.7845016Z             },
2026-06-15T15:10:07.7845107Z             {
2026-06-15T15:10:07.7845253Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7845372Z               "line": 210
2026-06-15T15:10:07.7845477Z             },
2026-06-15T15:10:07.7845570Z             {
2026-06-15T15:10:07.7845718Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7845834Z               "line": 287
2026-06-15T15:10:07.7845937Z             },
2026-06-15T15:10:07.7846042Z             {
2026-06-15T15:10:07.7846186Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7846295Z               "line": 311
2026-06-15T15:10:07.7846401Z             },
2026-06-15T15:10:07.7846501Z             {
2026-06-15T15:10:07.7846638Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7846749Z               "line": 389
2026-06-15T15:10:07.7846853Z             },
2026-06-15T15:10:07.7846957Z             {
2026-06-15T15:10:07.7847101Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7847210Z               "line": 438
2026-06-15T15:10:07.7847307Z             },
2026-06-15T15:10:07.7847411Z             {
2026-06-15T15:10:07.7847549Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-15T15:10:07.7847665Z               "line": 37
2026-06-15T15:10:07.7847772Z             },
2026-06-15T15:10:07.7847868Z             {
2026-06-15T15:10:07.7848096Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7848201Z               "line": 62
2026-06-15T15:10:07.7848301Z             },
2026-06-15T15:10:07.7848400Z             {
2026-06-15T15:10:07.7848541Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7848648Z               "line": 200
2026-06-15T15:10:07.7848752Z             },
2026-06-15T15:10:07.7848847Z             {
2026-06-15T15:10:07.7849044Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7849162Z               "line": 1603
2026-06-15T15:10:07.7849258Z             }
2026-06-15T15:10:07.7849358Z           ]
2026-06-15T15:10:07.7849462Z         },
2026-06-15T15:10:07.7849667Z         "int": {
2026-06-15T15:10:07.7849787Z           "complete": false,
2026-06-15T15:10:07.7849902Z           "evidence": []
2026-06-15T15:10:07.7849991Z         },
2026-06-15T15:10:07.7850092Z         "unit": {
2026-06-15T15:10:07.7850207Z           "complete": true,
2026-06-15T15:10:07.7850325Z           "evidence": [
2026-06-15T15:10:07.7850435Z             {
2026-06-15T15:10:07.7850579Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T15:10:07.7850683Z               "line": 360
2026-06-15T15:10:07.7850786Z             },
2026-06-15T15:10:07.7850882Z             {
2026-06-15T15:10:07.7851038Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7851152Z               "line": 787
2026-06-15T15:10:07.7851253Z             },
2026-06-15T15:10:07.7851352Z             {
2026-06-15T15:10:07.7851496Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7851610Z               "line": 844
2026-06-15T15:10:07.7851709Z             },
2026-06-15T15:10:07.7851806Z             {
2026-06-15T15:10:07.7851953Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7852062Z               "line": 889
2026-06-15T15:10:07.7852159Z             },
2026-06-15T15:10:07.7852253Z             {
2026-06-15T15:10:07.7852396Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.7852516Z               "line": 1014
2026-06-15T15:10:07.7852621Z             },
2026-06-15T15:10:07.7852716Z             {
2026-06-15T15:10:07.7852873Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7852988Z               "line": 1212
2026-06-15T15:10:07.7853079Z             },
2026-06-15T15:10:07.7853183Z             {
2026-06-15T15:10:07.7853341Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7853446Z               "line": 1353
2026-06-15T15:10:07.7853554Z             },
2026-06-15T15:10:07.7853654Z             {
2026-06-15T15:10:07.7853807Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7853921Z               "line": 449
2026-06-15T15:10:07.7854016Z             },
2026-06-15T15:10:07.7854118Z             {
2026-06-15T15:10:07.7854259Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7854375Z               "line": 485
2026-06-15T15:10:07.7854470Z             },
2026-06-15T15:10:07.7854569Z             {
2026-06-15T15:10:07.7854713Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7854817Z               "line": 540
2026-06-15T15:10:07.7854927Z             },
2026-06-15T15:10:07.7855033Z             {
2026-06-15T15:10:07.7855171Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7855280Z               "line": 697
2026-06-15T15:10:07.7855376Z             },
2026-06-15T15:10:07.7855480Z             {
2026-06-15T15:10:07.7855624Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7855729Z               "line": 931
2026-06-15T15:10:07.7855837Z             },
2026-06-15T15:10:07.7855947Z             {
2026-06-15T15:10:07.7856084Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7856187Z               "line": 945
2026-06-15T15:10:07.7856283Z             },
2026-06-15T15:10:07.7856389Z             {
2026-06-15T15:10:07.7856646Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7856760Z               "line": 1214
2026-06-15T15:10:07.7856859Z             },
2026-06-15T15:10:07.7856961Z             {
2026-06-15T15:10:07.7857103Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.7857213Z               "line": 440
2026-06-15T15:10:07.7857304Z             },
2026-06-15T15:10:07.7857404Z             {
2026-06-15T15:10:07.7857537Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7857652Z               "line": 6581
2026-06-15T15:10:07.7857751Z             }
2026-06-15T15:10:07.7857847Z           ]
2026-06-15T15:10:07.7857943Z         }
2026-06-15T15:10:07.7858118Z       }
2026-06-15T15:10:07.7858215Z     },
2026-06-15T15:10:07.7858314Z     {
2026-06-15T15:10:07.7858433Z       "id": "REQ-INST-4",
2026-06-15T15:10:07.7858638Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-15T15:10:07.7858756Z       "requiredStages": [
2026-06-15T15:10:07.7858871Z         "impl",
2026-06-15T15:10:07.7859049Z         "unit"
2026-06-15T15:10:07.7859150Z       ],
2026-06-15T15:10:07.7859260Z       "stages": {
2026-06-15T15:10:07.7859364Z         "doc": {
2026-06-15T15:10:07.7859484Z           "complete": false,
2026-06-15T15:10:07.7859599Z           "evidence": []
2026-06-15T15:10:07.7859698Z         },
2026-06-15T15:10:07.7859804Z         "impl": {
2026-06-15T15:10:07.7859923Z           "complete": true,
2026-06-15T15:10:07.7860036Z           "evidence": [
2026-06-15T15:10:07.7860138Z             {
2026-06-15T15:10:07.7860285Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7860404Z               "line": 335
2026-06-15T15:10:07.7860510Z             },
2026-06-15T15:10:07.7860609Z             {
2026-06-15T15:10:07.7860748Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7860857Z               "line": 202
2026-06-15T15:10:07.7860957Z             },
2026-06-15T15:10:07.7861059Z             {
2026-06-15T15:10:07.7861209Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7861309Z               "line": 234
2026-06-15T15:10:07.7861399Z             },
2026-06-15T15:10:07.7861503Z             {
2026-06-15T15:10:07.7861644Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7861760Z               "line": 274
2026-06-15T15:10:07.7861860Z             }
2026-06-15T15:10:07.7861964Z           ]
2026-06-15T15:10:07.7862066Z         },
2026-06-15T15:10:07.7862161Z         "int": {
2026-06-15T15:10:07.7862284Z           "complete": false,
2026-06-15T15:10:07.7862390Z           "evidence": []
2026-06-15T15:10:07.7862494Z         },
2026-06-15T15:10:07.7862594Z         "unit": {
2026-06-15T15:10:07.7862714Z           "complete": true,
2026-06-15T15:10:07.7862828Z           "evidence": [
2026-06-15T15:10:07.7862932Z             {
2026-06-15T15:10:07.7863076Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.7863176Z               "line": 839
2026-06-15T15:10:07.7863281Z             },
2026-06-15T15:10:07.7863377Z             {
2026-06-15T15:10:07.7863519Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7863635Z               "line": 561
2026-06-15T15:10:07.7863734Z             },
2026-06-15T15:10:07.7863834Z             {
2026-06-15T15:10:07.7863978Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7864081Z               "line": 668
2026-06-15T15:10:07.7864180Z             },
2026-06-15T15:10:07.7864286Z             {
2026-06-15T15:10:07.7864420Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7864523Z               "line": 750
2026-06-15T15:10:07.7864634Z             }
2026-06-15T15:10:07.7864730Z           ]
2026-06-15T15:10:07.7864833Z         }
2026-06-15T15:10:07.7864931Z       }
2026-06-15T15:10:07.7865030Z     },
2026-06-15T15:10:07.7865134Z     {
2026-06-15T15:10:07.7865245Z       "id": "REQ-INST-5",
2026-06-15T15:10:07.7865463Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-15T15:10:07.7865688Z       "requiredStages": [
2026-06-15T15:10:07.7865797Z         "impl",
2026-06-15T15:10:07.7865899Z         "unit",
2026-06-15T15:10:07.7866007Z         "int"
2026-06-15T15:10:07.7866107Z       ],
2026-06-15T15:10:07.7866214Z       "stages": {
2026-06-15T15:10:07.7866326Z         "doc": {
2026-06-15T15:10:07.7866440Z           "complete": false,
2026-06-15T15:10:07.7866545Z           "evidence": []
2026-06-15T15:10:07.7866648Z         },
2026-06-15T15:10:07.7866757Z         "impl": {
2026-06-15T15:10:07.7866867Z           "complete": true,
2026-06-15T15:10:07.7866977Z           "evidence": [
2026-06-15T15:10:07.7867182Z             {
2026-06-15T15:10:07.7867339Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T15:10:07.7867458Z               "line": 85
2026-06-15T15:10:07.7867559Z             },
2026-06-15T15:10:07.7867658Z             {
2026-06-15T15:10:07.7867802Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.7867907Z               "line": 68
2026-06-15T15:10:07.7868011Z             },
2026-06-15T15:10:07.7868112Z             {
2026-06-15T15:10:07.7868254Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.7868364Z               "line": 99
2026-06-15T15:10:07.7868470Z             },
2026-06-15T15:10:07.7868569Z             {
2026-06-15T15:10:07.7868708Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.7868823Z               "line": 183
2026-06-15T15:10:07.7868926Z             },
2026-06-15T15:10:07.7869104Z             {
2026-06-15T15:10:07.7869236Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.7869354Z               "line": 314
2026-06-15T15:10:07.7869455Z             }
2026-06-15T15:10:07.7869553Z           ]
2026-06-15T15:10:07.7869653Z         },
2026-06-15T15:10:07.7869758Z         "int": {
2026-06-15T15:10:07.7869877Z           "complete": true,
2026-06-15T15:10:07.7869986Z           "evidence": [
2026-06-15T15:10:07.7870088Z             {
2026-06-15T15:10:07.7870239Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T15:10:07.7870355Z               "line": 156
2026-06-15T15:10:07.7870450Z             },
2026-06-15T15:10:07.7870544Z             {
2026-06-15T15:10:07.7870688Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T15:10:07.7870802Z               "line": 102
2026-06-15T15:10:07.7870897Z             },
2026-06-15T15:10:07.7870998Z             {
2026-06-15T15:10:07.7871145Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.7871265Z               "line": 638
2026-06-15T15:10:07.7871375Z             },
2026-06-15T15:10:07.7871478Z             {
2026-06-15T15:10:07.7871624Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.7871733Z               "line": 975
2026-06-15T15:10:07.7871841Z             }
2026-06-15T15:10:07.7871946Z           ]
2026-06-15T15:10:07.7872050Z         },
2026-06-15T15:10:07.7872153Z         "unit": {
2026-06-15T15:10:07.7872277Z           "complete": true,
2026-06-15T15:10:07.7872378Z           "evidence": [
2026-06-15T15:10:07.7872481Z             {
2026-06-15T15:10:07.7872626Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.7872726Z               "line": 552
2026-06-15T15:10:07.7872830Z             },
2026-06-15T15:10:07.7872926Z             {
2026-06-15T15:10:07.7873064Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.7873168Z               "line": 595
2026-06-15T15:10:07.7873270Z             },
2026-06-15T15:10:07.7873369Z             {
2026-06-15T15:10:07.7873511Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T15:10:07.7873636Z               "line": 219
2026-06-15T15:10:07.7873736Z             }
2026-06-15T15:10:07.7873846Z           ]
2026-06-15T15:10:07.7873947Z         }
2026-06-15T15:10:07.7874051Z       }
2026-06-15T15:10:07.7874156Z     },
2026-06-15T15:10:07.7874257Z     {
2026-06-15T15:10:07.7874509Z       "id": "REQ-INST-6",
2026-06-15T15:10:07.7874727Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-15T15:10:07.7874846Z       "requiredStages": [
2026-06-15T15:10:07.7874952Z         "impl",
2026-06-15T15:10:07.7875051Z         "unit",
2026-06-15T15:10:07.7875151Z         "int"
2026-06-15T15:10:07.7875247Z       ],
2026-06-15T15:10:07.7875346Z       "stages": {
2026-06-15T15:10:07.7875447Z         "doc": {
2026-06-15T15:10:07.7875561Z           "complete": true,
2026-06-15T15:10:07.7875670Z           "evidence": [
2026-06-15T15:10:07.7875771Z             {
2026-06-15T15:10:07.7875905Z               "path": "docs/DEFERRED.md",
2026-06-15T15:10:07.7876115Z               "line": 13
2026-06-15T15:10:07.7876224Z             }
2026-06-15T15:10:07.7876324Z           ]
2026-06-15T15:10:07.7876425Z         },
2026-06-15T15:10:07.7876525Z         "impl": {
2026-06-15T15:10:07.7876634Z           "complete": true,
2026-06-15T15:10:07.7876740Z           "evidence": [
2026-06-15T15:10:07.7876839Z             {
2026-06-15T15:10:07.7876990Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.7877105Z               "line": 391
2026-06-15T15:10:07.7877213Z             },
2026-06-15T15:10:07.7877312Z             {
2026-06-15T15:10:07.7877456Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T15:10:07.7877565Z               "line": 27
2026-06-15T15:10:07.7877665Z             },
2026-06-15T15:10:07.7877761Z             {
2026-06-15T15:10:07.7877904Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T15:10:07.7878013Z               "line": 73
2026-06-15T15:10:07.7878133Z             },
2026-06-15T15:10:07.7878237Z             {
2026-06-15T15:10:07.7878377Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T15:10:07.7878490Z               "line": 182
2026-06-15T15:10:07.7878595Z             },
2026-06-15T15:10:07.7878692Z             {
2026-06-15T15:10:07.7878834Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7879059Z               "line": 426
2026-06-15T15:10:07.7879157Z             },
2026-06-15T15:10:07.7879258Z             {
2026-06-15T15:10:07.7879402Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T15:10:07.7879521Z               "line": 31
2026-06-15T15:10:07.7879621Z             },
2026-06-15T15:10:07.7879721Z             {
2026-06-15T15:10:07.7879872Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.7879982Z               "line": 202
2026-06-15T15:10:07.7880090Z             },
2026-06-15T15:10:07.7880193Z             {
2026-06-15T15:10:07.7880333Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.7880452Z               "line": 83
2026-06-15T15:10:07.7880552Z             },
2026-06-15T15:10:07.7880648Z             {
2026-06-15T15:10:07.7880785Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7880900Z               "line": 1604
2026-06-15T15:10:07.7881000Z             },
2026-06-15T15:10:07.7881109Z             {
2026-06-15T15:10:07.7881244Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.7881357Z               "line": 179
2026-06-15T15:10:07.7881462Z             },
2026-06-15T15:10:07.7881564Z             {
2026-06-15T15:10:07.7881700Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.7881810Z               "line": 215
2026-06-15T15:10:07.7881921Z             }
2026-06-15T15:10:07.7882015Z           ]
2026-06-15T15:10:07.7882115Z         },
2026-06-15T15:10:07.7882222Z         "int": {
2026-06-15T15:10:07.7882339Z           "complete": true,
2026-06-15T15:10:07.7882453Z           "evidence": [
2026-06-15T15:10:07.7882553Z             {
2026-06-15T15:10:07.7882708Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.7882823Z               "line": 652
2026-06-15T15:10:07.7882933Z             },
2026-06-15T15:10:07.7883027Z             {
2026-06-15T15:10:07.7883176Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.7883404Z               "line": 1020
2026-06-15T15:10:07.7883505Z             },
2026-06-15T15:10:07.7883605Z             {
2026-06-15T15:10:07.7883743Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.7883854Z               "line": 726
2026-06-15T15:10:07.7883948Z             }
2026-06-15T15:10:07.7884048Z           ]
2026-06-15T15:10:07.7884164Z         },
2026-06-15T15:10:07.7884268Z         "unit": {
2026-06-15T15:10:07.7884387Z           "complete": true,
2026-06-15T15:10:07.7884493Z           "evidence": [
2026-06-15T15:10:07.7884606Z             {
2026-06-15T15:10:07.7884746Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.7884963Z               "line": 661
2026-06-15T15:10:07.7885070Z             },
2026-06-15T15:10:07.7885160Z             {
2026-06-15T15:10:07.7885311Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.7885421Z               "line": 899
2026-06-15T15:10:07.7885526Z             },
2026-06-15T15:10:07.7885620Z             {
2026-06-15T15:10:07.7885765Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T15:10:07.7885883Z               "line": 66
2026-06-15T15:10:07.7885982Z             },
2026-06-15T15:10:07.7886084Z             {
2026-06-15T15:10:07.7886221Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.7886331Z               "line": 297
2026-06-15T15:10:07.7886441Z             },
2026-06-15T15:10:07.7886545Z             {
2026-06-15T15:10:07.7886685Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.7886803Z               "line": 203
2026-06-15T15:10:07.7886918Z             }
2026-06-15T15:10:07.7887009Z           ]
2026-06-15T15:10:07.7887113Z         }
2026-06-15T15:10:07.7887218Z       }
2026-06-15T15:10:07.7887319Z     },
2026-06-15T15:10:07.7887427Z     {
2026-06-15T15:10:07.7887541Z       "id": "REQ-INST-7",
2026-06-15T15:10:07.7887717Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-15T15:10:07.7887840Z       "requiredStages": [
2026-06-15T15:10:07.7887939Z         "impl",
2026-06-15T15:10:07.7888036Z         "unit",
2026-06-15T15:10:07.7888140Z         "int"
2026-06-15T15:10:07.7888240Z       ],
2026-06-15T15:10:07.7888341Z       "stages": {
2026-06-15T15:10:07.7888445Z         "doc": {
2026-06-15T15:10:07.7888559Z           "complete": false,
2026-06-15T15:10:07.7888674Z           "evidence": []
2026-06-15T15:10:07.7888778Z         },
2026-06-15T15:10:07.7888874Z         "impl": {
2026-06-15T15:10:07.7889084Z           "complete": true,
2026-06-15T15:10:07.7889184Z           "evidence": [
2026-06-15T15:10:07.7889285Z             {
2026-06-15T15:10:07.7889427Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.7889533Z               "line": 436
2026-06-15T15:10:07.7889633Z             },
2026-06-15T15:10:07.7889742Z             {
2026-06-15T15:10:07.7889905Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7890018Z               "line": 27
2026-06-15T15:10:07.7890123Z             },
2026-06-15T15:10:07.7890225Z             {
2026-06-15T15:10:07.7890375Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7890489Z               "line": 207
2026-06-15T15:10:07.7890594Z             },
2026-06-15T15:10:07.7890697Z             {
2026-06-15T15:10:07.7890850Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7890965Z               "line": 344
2026-06-15T15:10:07.7891073Z             },
2026-06-15T15:10:07.7891175Z             {
2026-06-15T15:10:07.7891317Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-15T15:10:07.7891431Z               "line": 59
2026-06-15T15:10:07.7891542Z             },
2026-06-15T15:10:07.7891641Z             {
2026-06-15T15:10:07.7891799Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7891913Z               "line": 41
2026-06-15T15:10:07.7892018Z             },
2026-06-15T15:10:07.7892228Z             {
2026-06-15T15:10:07.7892375Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T15:10:07.7892500Z               "line": 27
2026-06-15T15:10:07.7892603Z             },
2026-06-15T15:10:07.7892705Z             {
2026-06-15T15:10:07.7892848Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T15:10:07.7892951Z               "line": 119
2026-06-15T15:10:07.7893061Z             },
2026-06-15T15:10:07.7893161Z             {
2026-06-15T15:10:07.7893311Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T15:10:07.7893412Z               "line": 134
2026-06-15T15:10:07.7893513Z             },
2026-06-15T15:10:07.7893722Z             {
2026-06-15T15:10:07.7893865Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T15:10:07.7893969Z               "line": 139
2026-06-15T15:10:07.7894075Z             }
2026-06-15T15:10:07.7894170Z           ]
2026-06-15T15:10:07.7894274Z         },
2026-06-15T15:10:07.7894385Z         "int": {
2026-06-15T15:10:07.7894508Z           "complete": true,
2026-06-15T15:10:07.7894613Z           "evidence": [
2026-06-15T15:10:07.7894709Z             {
2026-06-15T15:10:07.7894857Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T15:10:07.7894966Z               "line": 102
2026-06-15T15:10:07.7895062Z             },
2026-06-15T15:10:07.7895166Z             {
2026-06-15T15:10:07.7895311Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.7895415Z               "line": 596
2026-06-15T15:10:07.7895519Z             },
2026-06-15T15:10:07.7895621Z             {
2026-06-15T15:10:07.7895776Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.7895904Z               "line": 870
2026-06-15T15:10:07.7896005Z             }
2026-06-15T15:10:07.7896100Z           ]
2026-06-15T15:10:07.7896204Z         },
2026-06-15T15:10:07.7896300Z         "unit": {
2026-06-15T15:10:07.7896406Z           "complete": true,
2026-06-15T15:10:07.7896524Z           "evidence": [
2026-06-15T15:10:07.7896635Z             {
2026-06-15T15:10:07.7896795Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7896906Z               "line": 1082
2026-06-15T15:10:07.7897011Z             },
2026-06-15T15:10:07.7897115Z             {
2026-06-15T15:10:07.7897255Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.7897373Z               "line": 1414
2026-06-15T15:10:07.7897473Z             },
2026-06-15T15:10:07.7897569Z             {
2026-06-15T15:10:07.7897720Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T15:10:07.7897821Z               "line": 84
2026-06-15T15:10:07.7897937Z             },
2026-06-15T15:10:07.7898040Z             {
2026-06-15T15:10:07.7898201Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7898319Z               "line": 780
2026-06-15T15:10:07.7898419Z             },
2026-06-15T15:10:07.7898518Z             {
2026-06-15T15:10:07.7898671Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7898785Z               "line": 791
2026-06-15T15:10:07.7898877Z             },
2026-06-15T15:10:07.7899067Z             {
2026-06-15T15:10:07.7899215Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7899329Z               "line": 806
2026-06-15T15:10:07.7899429Z             },
2026-06-15T15:10:07.7899535Z             {
2026-06-15T15:10:07.7899691Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T15:10:07.7899797Z               "line": 166
2026-06-15T15:10:07.7899901Z             },
2026-06-15T15:10:07.7900001Z             {
2026-06-15T15:10:07.7900160Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T15:10:07.7900268Z               "line": 181
2026-06-15T15:10:07.7900373Z             },
2026-06-15T15:10:07.7900475Z             {
2026-06-15T15:10:07.7900626Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T15:10:07.7900737Z               "line": 214
2026-06-15T15:10:07.7900964Z             }
2026-06-15T15:10:07.7901063Z           ]
2026-06-15T15:10:07.7901163Z         }
2026-06-15T15:10:07.7901272Z       }
2026-06-15T15:10:07.7901367Z     },
2026-06-15T15:10:07.7901463Z     {
2026-06-15T15:10:07.7901572Z       "id": "REQ-INST-8",
2026-06-15T15:10:07.7901754Z       "title": "Remote-control mode distinct from local operation",
2026-06-15T15:10:07.7901863Z       "requiredStages": [
2026-06-15T15:10:07.7901971Z         "impl",
2026-06-15T15:10:07.7902078Z         "unit",
2026-06-15T15:10:07.7902178Z         "int"
2026-06-15T15:10:07.7902272Z       ],
2026-06-15T15:10:07.7902388Z       "stages": {
2026-06-15T15:10:07.7902606Z         "doc": {
2026-06-15T15:10:07.7902726Z           "complete": false,
2026-06-15T15:10:07.7902844Z           "evidence": []
2026-06-15T15:10:07.7902940Z         },
2026-06-15T15:10:07.7903046Z         "impl": {
2026-06-15T15:10:07.7903159Z           "complete": true,
2026-06-15T15:10:07.7903275Z           "evidence": [
2026-06-15T15:10:07.7903389Z             {
2026-06-15T15:10:07.7903535Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T15:10:07.7903650Z               "line": 104
2026-06-15T15:10:07.7903749Z             },
2026-06-15T15:10:07.7903861Z             {
2026-06-15T15:10:07.7904005Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T15:10:07.7904124Z               "line": 299
2026-06-15T15:10:07.7904229Z             },
2026-06-15T15:10:07.7904330Z             {
2026-06-15T15:10:07.7904472Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T15:10:07.7904577Z               "line": 339
2026-06-15T15:10:07.7904687Z             },
2026-06-15T15:10:07.7907270Z             {
2026-06-15T15:10:07.7907471Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T15:10:07.7907585Z               "line": 62
2026-06-15T15:10:07.7907685Z             }
2026-06-15T15:10:07.7907791Z           ]
2026-06-15T15:10:07.7907886Z         },
2026-06-15T15:10:07.7907995Z         "int": {
2026-06-15T15:10:07.7908115Z           "complete": true,
2026-06-15T15:10:07.7908229Z           "evidence": [
2026-06-15T15:10:07.7908338Z             {
2026-06-15T15:10:07.7908497Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T15:10:07.7908614Z               "line": 415
2026-06-15T15:10:07.7908713Z             },
2026-06-15T15:10:07.7908814Z             {
2026-06-15T15:10:07.7909035Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.7909151Z               "line": 934
2026-06-15T15:10:07.7909260Z             }
2026-06-15T15:10:07.7909360Z           ]
2026-06-15T15:10:07.7909456Z         },
2026-06-15T15:10:07.7909570Z         "unit": {
2026-06-15T15:10:07.7909684Z           "complete": true,
2026-06-15T15:10:07.7909794Z           "evidence": [
2026-06-15T15:10:07.7909894Z             {
2026-06-15T15:10:07.7910052Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.7910157Z               "line": 358
2026-06-15T15:10:07.7910266Z             },
2026-06-15T15:10:07.7910367Z             {
2026-06-15T15:10:07.7910510Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.7910614Z               "line": 513
2026-06-15T15:10:07.7910720Z             },
2026-06-15T15:10:07.7910828Z             {
2026-06-15T15:10:07.7910973Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T15:10:07.7911091Z               "line": 116
2026-06-15T15:10:07.7911186Z             },
2026-06-15T15:10:07.7911293Z             {
2026-06-15T15:10:07.7911439Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T15:10:07.7911534Z               "line": 160
2026-06-15T15:10:07.7911638Z             }
2026-06-15T15:10:07.7911737Z           ]
2026-06-15T15:10:07.7911846Z         }
2026-06-15T15:10:07.7911951Z       }
2026-06-15T15:10:07.7912047Z     },
2026-06-15T15:10:07.7912146Z     {
2026-06-15T15:10:07.7912265Z       "id": "REQ-INST-9",
2026-06-15T15:10:07.7912484Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-15T15:10:07.7912729Z       "requiredStages": [
2026-06-15T15:10:07.7912842Z         "impl",
2026-06-15T15:10:07.7912948Z         "unit"
2026-06-15T15:10:07.7913057Z       ],
2026-06-15T15:10:07.7913157Z       "stages": {
2026-06-15T15:10:07.7913259Z         "doc": {
2026-06-15T15:10:07.7913376Z           "complete": false,
2026-06-15T15:10:07.7913481Z           "evidence": []
2026-06-15T15:10:07.7913592Z         },
2026-06-15T15:10:07.7913691Z         "impl": {
2026-06-15T15:10:07.7913810Z           "complete": true,
2026-06-15T15:10:07.7913926Z           "evidence": [
2026-06-15T15:10:07.7914029Z             {
2026-06-15T15:10:07.7914299Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7914412Z               "line": 417
2026-06-15T15:10:07.7914513Z             }
2026-06-15T15:10:07.7914614Z           ]
2026-06-15T15:10:07.7914718Z         },
2026-06-15T15:10:07.7914818Z         "int": {
2026-06-15T15:10:07.7914933Z           "complete": false,
2026-06-15T15:10:07.7915056Z           "evidence": []
2026-06-15T15:10:07.7915157Z         },
2026-06-15T15:10:07.7915267Z         "unit": {
2026-06-15T15:10:07.7915371Z           "complete": true,
2026-06-15T15:10:07.7915482Z           "evidence": [
2026-06-15T15:10:07.7915586Z             {
2026-06-15T15:10:07.7915743Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7915863Z               "line": 1321
2026-06-15T15:10:07.7915962Z             },
2026-06-15T15:10:07.7916062Z             {
2026-06-15T15:10:07.7916210Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7916315Z               "line": 1330
2026-06-15T15:10:07.7916421Z             },
2026-06-15T15:10:07.7916521Z             {
2026-06-15T15:10:07.7916668Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7916775Z               "line": 1346
2026-06-15T15:10:07.7916873Z             },
2026-06-15T15:10:07.7916977Z             {
2026-06-15T15:10:07.7917125Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7917239Z               "line": 1358
2026-06-15T15:10:07.7917334Z             },
2026-06-15T15:10:07.7917435Z             {
2026-06-15T15:10:07.7917582Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.7917697Z               "line": 1378
2026-06-15T15:10:07.7917798Z             }
2026-06-15T15:10:07.7917897Z           ]
2026-06-15T15:10:07.7918002Z         }
2026-06-15T15:10:07.7918103Z       }
2026-06-15T15:10:07.7918198Z     },
2026-06-15T15:10:07.7918302Z     {
2026-06-15T15:10:07.7918422Z       "id": "REQ-INSTALL-1",
2026-06-15T15:10:07.7918651Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-15T15:10:07.7918775Z       "requiredStages": [
2026-06-15T15:10:07.7918880Z         "doc",
2026-06-15T15:10:07.7919048Z         "impl",
2026-06-15T15:10:07.7919146Z         "int"
2026-06-15T15:10:07.7919246Z       ],
2026-06-15T15:10:07.7919360Z       "stages": {
2026-06-15T15:10:07.7919454Z         "doc": {
2026-06-15T15:10:07.7919567Z           "complete": true,
2026-06-15T15:10:07.7919672Z           "evidence": [
2026-06-15T15:10:07.7919774Z             {
2026-06-15T15:10:07.7919887Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.7919992Z               "line": 694
2026-06-15T15:10:07.7920093Z             }
2026-06-15T15:10:07.7920187Z           ]
2026-06-15T15:10:07.7920288Z         },
2026-06-15T15:10:07.7920388Z         "impl": {
2026-06-15T15:10:07.7920497Z           "complete": true,
2026-06-15T15:10:07.7920608Z           "evidence": [
2026-06-15T15:10:07.7920717Z             {
2026-06-15T15:10:07.7920883Z               "path": "installer/install.ps1",
2026-06-15T15:10:07.7921003Z               "line": 57
2026-06-15T15:10:07.7921108Z             },
2026-06-15T15:10:07.7921203Z             {
2026-06-15T15:10:07.7921328Z               "path": "installer/install.sh",
2026-06-15T15:10:07.7921441Z               "line": 52
2026-06-15T15:10:07.7921656Z             }
2026-06-15T15:10:07.7921756Z           ]
2026-06-15T15:10:07.7921848Z         },
2026-06-15T15:10:07.7921958Z         "int": {
2026-06-15T15:10:07.7922070Z           "complete": true,
2026-06-15T15:10:07.7922170Z           "evidence": [
2026-06-15T15:10:07.7922270Z             {
2026-06-15T15:10:07.7922415Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T15:10:07.7922530Z               "line": 21
2026-06-15T15:10:07.7922626Z             }
2026-06-15T15:10:07.7922730Z           ]
2026-06-15T15:10:07.7922831Z         },
2026-06-15T15:10:07.7922935Z         "unit": {
2026-06-15T15:10:07.7923049Z           "complete": false,
2026-06-15T15:10:07.7923260Z           "evidence": []
2026-06-15T15:10:07.7923369Z         }
2026-06-15T15:10:07.7923470Z       }
2026-06-15T15:10:07.7923593Z     },
2026-06-15T15:10:07.7923703Z     {
2026-06-15T15:10:07.7923823Z       "id": "REQ-INSTALL-2",
2026-06-15T15:10:07.7923993Z       "title": "Marketplace-repackaging-friendly install",
2026-06-15T15:10:07.7924114Z       "requiredStages": [
2026-06-15T15:10:07.7924223Z         "doc"
2026-06-15T15:10:07.7924318Z       ],
2026-06-15T15:10:07.7924419Z       "stages": {
2026-06-15T15:10:07.7924524Z         "doc": {
2026-06-15T15:10:07.7924637Z           "complete": true,
2026-06-15T15:10:07.7924750Z           "evidence": [
2026-06-15T15:10:07.7924850Z             {
2026-06-15T15:10:07.7924973Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.7925077Z               "line": 695
2026-06-15T15:10:07.7925184Z             }
2026-06-15T15:10:07.7925278Z           ]
2026-06-15T15:10:07.7925378Z         },
2026-06-15T15:10:07.7925484Z         "impl": {
2026-06-15T15:10:07.7925602Z           "complete": false,
2026-06-15T15:10:07.7925717Z           "evidence": []
2026-06-15T15:10:07.7925812Z         },
2026-06-15T15:10:07.7925912Z         "int": {
2026-06-15T15:10:07.7926027Z           "complete": false,
2026-06-15T15:10:07.7926146Z           "evidence": []
2026-06-15T15:10:07.7926250Z         },
2026-06-15T15:10:07.7926361Z         "unit": {
2026-06-15T15:10:07.7926484Z           "complete": false,
2026-06-15T15:10:07.7926589Z           "evidence": []
2026-06-15T15:10:07.7926695Z         }
2026-06-15T15:10:07.7926799Z       }
2026-06-15T15:10:07.7926899Z     },
2026-06-15T15:10:07.7927000Z     {
2026-06-15T15:10:07.7927118Z       "id": "REQ-INSTALL-3",
2026-06-15T15:10:07.7927291Z       "title": "Idempotent + interactive-optional first run",
2026-06-15T15:10:07.7927400Z       "requiredStages": [
2026-06-15T15:10:07.7927513Z         "impl",
2026-06-15T15:10:07.7927613Z         "int"
2026-06-15T15:10:07.7927714Z       ],
2026-06-15T15:10:07.7927814Z       "stages": {
2026-06-15T15:10:07.7927914Z         "doc": {
2026-06-15T15:10:07.7928034Z           "complete": false,
2026-06-15T15:10:07.7928142Z           "evidence": []
2026-06-15T15:10:07.7928248Z         },
2026-06-15T15:10:07.7928344Z         "impl": {
2026-06-15T15:10:07.7928462Z           "complete": true,
2026-06-15T15:10:07.7928572Z           "evidence": [
2026-06-15T15:10:07.7928677Z             {
2026-06-15T15:10:07.7928810Z               "path": "installer/install.ps1",
2026-06-15T15:10:07.7928916Z               "line": 100
2026-06-15T15:10:07.7929087Z             },
2026-06-15T15:10:07.7929187Z             {
2026-06-15T15:10:07.7929321Z               "path": "installer/install.ps1",
2026-06-15T15:10:07.7929435Z               "line": 111
2026-06-15T15:10:07.7929540Z             },
2026-06-15T15:10:07.7929640Z             {
2026-06-15T15:10:07.7929763Z               "path": "installer/install.sh",
2026-06-15T15:10:07.7929877Z               "line": 79
2026-06-15T15:10:07.7929977Z             }
2026-06-15T15:10:07.7930089Z           ]
2026-06-15T15:10:07.7930190Z         },
2026-06-15T15:10:07.7930290Z         "int": {
2026-06-15T15:10:07.7930404Z           "complete": true,
2026-06-15T15:10:07.7930509Z           "evidence": [
2026-06-15T15:10:07.7930610Z             {
2026-06-15T15:10:07.7930752Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T15:10:07.7930977Z               "line": 167
2026-06-15T15:10:07.7931076Z             }
2026-06-15T15:10:07.7931182Z           ]
2026-06-15T15:10:07.7931281Z         },
2026-06-15T15:10:07.7931386Z         "unit": {
2026-06-15T15:10:07.7931506Z           "complete": false,
2026-06-15T15:10:07.7931615Z           "evidence": []
2026-06-15T15:10:07.7931720Z         }
2026-06-15T15:10:07.7931831Z       }
2026-06-15T15:10:07.7931921Z     },
2026-06-15T15:10:07.7932015Z     {
2026-06-15T15:10:07.7932131Z       "id": "REQ-INSTALL-4",
2026-06-15T15:10:07.7932811Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-15T15:10:07.7933042Z       "requiredStages": [
2026-06-15T15:10:07.7933148Z         "impl",
2026-06-15T15:10:07.7933243Z         "unit"
2026-06-15T15:10:07.7933338Z       ],
2026-06-15T15:10:07.7933454Z       "stages": {
2026-06-15T15:10:07.7933544Z         "doc": {
2026-06-15T15:10:07.7933662Z           "complete": false,
2026-06-15T15:10:07.7933773Z           "evidence": []
2026-06-15T15:10:07.7933873Z         },
2026-06-15T15:10:07.7933977Z         "impl": {
2026-06-15T15:10:07.7934092Z           "complete": true,
2026-06-15T15:10:07.7934206Z           "evidence": [
2026-06-15T15:10:07.7934306Z             {
2026-06-15T15:10:07.7934463Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.7934573Z               "line": 154
2026-06-15T15:10:07.7934674Z             },
2026-06-15T15:10:07.7934774Z             {
2026-06-15T15:10:07.7934931Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7935047Z               "line": 29
2026-06-15T15:10:07.7935144Z             },
2026-06-15T15:10:07.7935244Z             {
2026-06-15T15:10:07.7935392Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7935495Z               "line": 275
2026-06-15T15:10:07.7935604Z             },
2026-06-15T15:10:07.7935705Z             {
2026-06-15T15:10:07.7935857Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7935967Z               "line": 339
2026-06-15T15:10:07.7936077Z             },
2026-06-15T15:10:07.7936181Z             {
2026-06-15T15:10:07.7936321Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7936434Z               "line": 369
2026-06-15T15:10:07.7936538Z             },
2026-06-15T15:10:07.7936650Z             {
2026-06-15T15:10:07.7936791Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7936902Z               "line": 401
2026-06-15T15:10:07.7937021Z             },
2026-06-15T15:10:07.7937120Z             {
2026-06-15T15:10:07.7937255Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7937368Z               "line": 4843
2026-06-15T15:10:07.7937464Z             }
2026-06-15T15:10:07.7937565Z           ]
2026-06-15T15:10:07.7937664Z         },
2026-06-15T15:10:07.7937769Z         "int": {
2026-06-15T15:10:07.7937885Z           "complete": false,
2026-06-15T15:10:07.7938002Z           "evidence": []
2026-06-15T15:10:07.7938097Z         },
2026-06-15T15:10:07.7938212Z         "unit": {
2026-06-15T15:10:07.7938327Z           "complete": true,
2026-06-15T15:10:07.7938440Z           "evidence": [
2026-06-15T15:10:07.7938541Z             {
2026-06-15T15:10:07.7938698Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.7938803Z               "line": 335
2026-06-15T15:10:07.7938904Z             },
2026-06-15T15:10:07.7939093Z             {
2026-06-15T15:10:07.7939251Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7939370Z               "line": 763
2026-06-15T15:10:07.7939476Z             },
2026-06-15T15:10:07.7939571Z             {
2026-06-15T15:10:07.7939723Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7939829Z               "line": 804
2026-06-15T15:10:07.7940038Z             },
2026-06-15T15:10:07.7940135Z             {
2026-06-15T15:10:07.7940281Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7940394Z               "line": 824
2026-06-15T15:10:07.7940499Z             },
2026-06-15T15:10:07.7940602Z             {
2026-06-15T15:10:07.7940726Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7940841Z               "line": 6901
2026-06-15T15:10:07.7940959Z             }
2026-06-15T15:10:07.7941108Z           ]
2026-06-15T15:10:07.7941260Z         }
2026-06-15T15:10:07.7941369Z       }
2026-06-15T15:10:07.7941466Z     },
2026-06-15T15:10:07.7941694Z     {
2026-06-15T15:10:07.7941818Z       "id": "REQ-INSTALL-5",
2026-06-15T15:10:07.7942358Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-15T15:10:07.7942481Z       "requiredStages": [
2026-06-15T15:10:07.7942585Z         "impl",
2026-06-15T15:10:07.7942687Z         "int"
2026-06-15T15:10:07.7942786Z       ],
2026-06-15T15:10:07.7942896Z       "stages": {
2026-06-15T15:10:07.7942997Z         "doc": {
2026-06-15T15:10:07.7943120Z           "complete": false,
2026-06-15T15:10:07.7943233Z           "evidence": []
2026-06-15T15:10:07.7943329Z         },
2026-06-15T15:10:07.7943427Z         "impl": {
2026-06-15T15:10:07.7943545Z           "complete": true,
2026-06-15T15:10:07.7943651Z           "evidence": [
2026-06-15T15:10:07.7943756Z             {
2026-06-15T15:10:07.7943893Z               "path": "installer/install.ps1",
2026-06-15T15:10:07.7943999Z               "line": 5
2026-06-15T15:10:07.7944113Z             },
2026-06-15T15:10:07.7944212Z             {
2026-06-15T15:10:07.7944352Z               "path": "installer/install.sh",
2026-06-15T15:10:07.7944461Z               "line": 6
2026-06-15T15:10:07.7944551Z             }
2026-06-15T15:10:07.7944652Z           ]
2026-06-15T15:10:07.7944757Z         },
2026-06-15T15:10:07.7944857Z         "int": {
2026-06-15T15:10:07.7944967Z           "complete": true,
2026-06-15T15:10:07.7945085Z           "evidence": [
2026-06-15T15:10:07.7945186Z             {
2026-06-15T15:10:07.7945339Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T15:10:07.7945452Z               "line": 22
2026-06-15T15:10:07.7945550Z             }
2026-06-15T15:10:07.7945649Z           ]
2026-06-15T15:10:07.7945747Z         },
2026-06-15T15:10:07.7945867Z         "unit": {
2026-06-15T15:10:07.7945980Z           "complete": false,
2026-06-15T15:10:07.7946097Z           "evidence": []
2026-06-15T15:10:07.7946198Z         }
2026-06-15T15:10:07.7946299Z       }
2026-06-15T15:10:07.7946402Z     },
2026-06-15T15:10:07.7946508Z     {
2026-06-15T15:10:07.7946632Z       "id": "REQ-INSTALL-6",
2026-06-15T15:10:07.7947991Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-15T15:10:07.7948116Z       "requiredStages": [
2026-06-15T15:10:07.7948224Z         "impl",
2026-06-15T15:10:07.7948324Z         "unit"
2026-06-15T15:10:07.7948431Z       ],
2026-06-15T15:10:07.7948530Z       "stages": {
2026-06-15T15:10:07.7948634Z         "doc": {
2026-06-15T15:10:07.7948752Z           "complete": false,
2026-06-15T15:10:07.7948854Z           "evidence": []
2026-06-15T15:10:07.7949058Z         },
2026-06-15T15:10:07.7949187Z         "impl": {
2026-06-15T15:10:07.7949310Z           "complete": true,
2026-06-15T15:10:07.7949417Z           "evidence": [
2026-06-15T15:10:07.7949516Z             {
2026-06-15T15:10:07.7949673Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7949788Z               "line": 59
2026-06-15T15:10:07.7950012Z             },
2026-06-15T15:10:07.7950112Z             {
2026-06-15T15:10:07.7950259Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.7950370Z               "line": 559
2026-06-15T15:10:07.7950469Z             },
2026-06-15T15:10:07.7950569Z             {
2026-06-15T15:10:07.7950733Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7950846Z               "line": 191
2026-06-15T15:10:07.7950945Z             },
2026-06-15T15:10:07.7951050Z             {
2026-06-15T15:10:07.7951205Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7951319Z               "line": 276
2026-06-15T15:10:07.7951524Z             },
2026-06-15T15:10:07.7951620Z             {
2026-06-15T15:10:07.7951763Z               "path": "crates/spt/src/main.rs",
2026-06-15T15:10:07.7951863Z               "line": 42
2026-06-15T15:10:07.7951979Z             },
2026-06-15T15:10:07.7952073Z             {
2026-06-15T15:10:07.7952210Z               "path": "installer/install.sh",
2026-06-15T15:10:07.7952331Z               "line": 104
2026-06-15T15:10:07.7952431Z             }
2026-06-15T15:10:07.7952540Z           ]
2026-06-15T15:10:07.7952641Z         },
2026-06-15T15:10:07.7952745Z         "int": {
2026-06-15T15:10:07.7952864Z           "complete": false,
2026-06-15T15:10:07.7952980Z           "evidence": []
2026-06-15T15:10:07.7953083Z         },
2026-06-15T15:10:07.7953189Z         "unit": {
2026-06-15T15:10:07.7953309Z           "complete": true,
2026-06-15T15:10:07.7953417Z           "evidence": [
2026-06-15T15:10:07.7953519Z             {
2026-06-15T15:10:07.7953666Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T15:10:07.7953788Z               "line": 866
2026-06-15T15:10:07.7953898Z             }
2026-06-15T15:10:07.7953992Z           ]
2026-06-15T15:10:07.7954086Z         }
2026-06-15T15:10:07.7954191Z       }
2026-06-15T15:10:07.7954292Z     },
2026-06-15T15:10:07.7954396Z     {
2026-06-15T15:10:07.7954521Z       "id": "REQ-INSTALL-7",
2026-06-15T15:10:07.7955693Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-15T15:10:07.7955814Z       "requiredStages": [
2026-06-15T15:10:07.7955918Z         "impl"
2026-06-15T15:10:07.7956013Z       ],
2026-06-15T15:10:07.7956133Z       "stages": {
2026-06-15T15:10:07.7956242Z         "doc": {
2026-06-15T15:10:07.7956364Z           "complete": false,
2026-06-15T15:10:07.7956484Z           "evidence": []
2026-06-15T15:10:07.7956582Z         },
2026-06-15T15:10:07.7956696Z         "impl": {
2026-06-15T15:10:07.7956811Z           "complete": true,
2026-06-15T15:10:07.7956921Z           "evidence": [
2026-06-15T15:10:07.7957034Z             {
2026-06-15T15:10:07.7957173Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7957287Z               "line": 3482
2026-06-15T15:10:07.7957383Z             },
2026-06-15T15:10:07.7957483Z             {
2026-06-15T15:10:07.7957620Z               "path": "installer/install.ps1",
2026-06-15T15:10:07.7957731Z               "line": 157
2026-06-15T15:10:07.7957840Z             }
2026-06-15T15:10:07.7957930Z           ]
2026-06-15T15:10:07.7958032Z         },
2026-06-15T15:10:07.7958137Z         "int": {
2026-06-15T15:10:07.7958255Z           "complete": false,
2026-06-15T15:10:07.7958361Z           "evidence": []
2026-06-15T15:10:07.7958461Z         },
2026-06-15T15:10:07.7958579Z         "unit": {
2026-06-15T15:10:07.7958695Z           "complete": false,
2026-06-15T15:10:07.7958813Z           "evidence": []
2026-06-15T15:10:07.7958913Z         }
2026-06-15T15:10:07.7959095Z       }
2026-06-15T15:10:07.7959198Z     },
2026-06-15T15:10:07.7959299Z     {
2026-06-15T15:10:07.7959424Z       "id": "REQ-INSTALL-8",
2026-06-15T15:10:07.7960645Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-15T15:10:07.7960767Z       "requiredStages": [
2026-06-15T15:10:07.7960867Z         "impl"
2026-06-15T15:10:07.7960969Z       ],
2026-06-15T15:10:07.7961072Z       "stages": {
2026-06-15T15:10:07.7961177Z         "doc": {
2026-06-15T15:10:07.7961391Z           "complete": false,
2026-06-15T15:10:07.7961491Z           "evidence": []
2026-06-15T15:10:07.7961596Z         },
2026-06-15T15:10:07.7961694Z         "impl": {
2026-06-15T15:10:07.7961807Z           "complete": true,
2026-06-15T15:10:07.7961918Z           "evidence": [
2026-06-15T15:10:07.7962018Z             {
2026-06-15T15:10:07.7962161Z               "path": "installer/install.ps1",
2026-06-15T15:10:07.7962271Z               "line": 184
2026-06-15T15:10:07.7962375Z             },
2026-06-15T15:10:07.7962475Z             {
2026-06-15T15:10:07.7962605Z               "path": "installer/install.sh",
2026-06-15T15:10:07.7962714Z               "line": 121
2026-06-15T15:10:07.7962819Z             }
2026-06-15T15:10:07.7962919Z           ]
2026-06-15T15:10:07.7963019Z         },
2026-06-15T15:10:07.7963124Z         "int": {
2026-06-15T15:10:07.7963234Z           "complete": false,
2026-06-15T15:10:07.7963348Z           "evidence": []
2026-06-15T15:10:07.7963454Z         },
2026-06-15T15:10:07.7963568Z         "unit": {
2026-06-15T15:10:07.7963687Z           "complete": false,
2026-06-15T15:10:07.7963788Z           "evidence": []
2026-06-15T15:10:07.7963892Z         }
2026-06-15T15:10:07.7963997Z       }
2026-06-15T15:10:07.7964098Z     },
2026-06-15T15:10:07.7964202Z     {
2026-06-15T15:10:07.7964315Z       "id": "REQ-KICK-1",
2026-06-15T15:10:07.7966849Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-15T15:10:07.7966972Z       "requiredStages": [
2026-06-15T15:10:07.7967077Z         "doc",
2026-06-15T15:10:07.7967180Z         "impl",
2026-06-15T15:10:07.7967284Z         "unit",
2026-06-15T15:10:07.7967386Z         "int"
2026-06-15T15:10:07.7967485Z       ],
2026-06-15T15:10:07.7967590Z       "stages": {
2026-06-15T15:10:07.7967691Z         "doc": {
2026-06-15T15:10:07.7967800Z           "complete": true,
2026-06-15T15:10:07.7967914Z           "evidence": [
2026-06-15T15:10:07.7968020Z             {
2026-06-15T15:10:07.7968134Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.7968253Z               "line": 322
2026-06-15T15:10:07.7968358Z             }
2026-06-15T15:10:07.7968458Z           ]
2026-06-15T15:10:07.7968563Z         },
2026-06-15T15:10:07.7968682Z         "impl": {
2026-06-15T15:10:07.7968797Z           "complete": true,
2026-06-15T15:10:07.7968912Z           "evidence": [
2026-06-15T15:10:07.7969087Z             {
2026-06-15T15:10:07.7969241Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T15:10:07.7969354Z               "line": 41
2026-06-15T15:10:07.7969660Z             },
2026-06-15T15:10:07.7969763Z             {
2026-06-15T15:10:07.7969892Z               "path": "crates/spt/src/rc.rs",
2026-06-15T15:10:07.7970008Z               "line": 181
2026-06-15T15:10:07.7970111Z             }
2026-06-15T15:10:07.7970212Z           ]
2026-06-15T15:10:07.7970327Z         },
2026-06-15T15:10:07.7970430Z         "int": {
2026-06-15T15:10:07.7970551Z           "complete": true,
2026-06-15T15:10:07.7970666Z           "evidence": [
2026-06-15T15:10:07.7970788Z             {
2026-06-15T15:10:07.7970946Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.7971055Z               "line": 789
2026-06-15T15:10:07.7971270Z             }
2026-06-15T15:10:07.7971360Z           ]
2026-06-15T15:10:07.7971462Z         },
2026-06-15T15:10:07.7971562Z         "unit": {
2026-06-15T15:10:07.7971680Z           "complete": true,
2026-06-15T15:10:07.7971800Z           "evidence": [
2026-06-15T15:10:07.7971909Z             {
2026-06-15T15:10:07.7972065Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T15:10:07.7972175Z               "line": 205
2026-06-15T15:10:07.7972277Z             }
2026-06-15T15:10:07.7972377Z           ]
2026-06-15T15:10:07.7972483Z         }
2026-06-15T15:10:07.7972588Z       }
2026-06-15T15:10:07.7972683Z     },
2026-06-15T15:10:07.7972788Z     {
2026-06-15T15:10:07.7972898Z       "id": "REQ-MANIFEST-1",
2026-06-15T15:10:07.7973118Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-15T15:10:07.7973236Z       "requiredStages": [
2026-06-15T15:10:07.7973340Z         "doc",
2026-06-15T15:10:07.7973447Z         "impl",
2026-06-15T15:10:07.7973547Z         "unit"
2026-06-15T15:10:07.7973651Z       ],
2026-06-15T15:10:07.7973752Z       "stages": {
2026-06-15T15:10:07.7973861Z         "doc": {
2026-06-15T15:10:07.7973966Z           "complete": true,
2026-06-15T15:10:07.7974086Z           "evidence": [
2026-06-15T15:10:07.7974194Z             {
2026-06-15T15:10:07.7974324Z               "path": "docs/MANIFEST.md",
2026-06-15T15:10:07.7974443Z               "line": 19
2026-06-15T15:10:07.7974547Z             }
2026-06-15T15:10:07.7974649Z           ]
2026-06-15T15:10:07.7974744Z         },
2026-06-15T15:10:07.7974856Z         "impl": {
2026-06-15T15:10:07.7974971Z           "complete": true,
2026-06-15T15:10:07.7975075Z           "evidence": [
2026-06-15T15:10:07.7975178Z             {
2026-06-15T15:10:07.7975336Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7975446Z               "line": 18
2026-06-15T15:10:07.7975540Z             }
2026-06-15T15:10:07.7975641Z           ]
2026-06-15T15:10:07.7975741Z         },
2026-06-15T15:10:07.7975855Z         "int": {
2026-06-15T15:10:07.7975971Z           "complete": false,
2026-06-15T15:10:07.7976085Z           "evidence": []
2026-06-15T15:10:07.7976189Z         },
2026-06-15T15:10:07.7976285Z         "unit": {
2026-06-15T15:10:07.7976408Z           "complete": true,
2026-06-15T15:10:07.7976518Z           "evidence": [
2026-06-15T15:10:07.7976638Z             {
2026-06-15T15:10:07.7976790Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7976900Z               "line": 869
2026-06-15T15:10:07.7977010Z             },
2026-06-15T15:10:07.7977114Z             {
2026-06-15T15:10:07.7977268Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7977376Z               "line": 947
2026-06-15T15:10:07.7977475Z             },
2026-06-15T15:10:07.7977590Z             {
2026-06-15T15:10:07.7977740Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7977854Z               "line": 959
2026-06-15T15:10:07.7977956Z             },
2026-06-15T15:10:07.7978069Z             {
2026-06-15T15:10:07.7978218Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7978322Z               "line": 970
2026-06-15T15:10:07.7978422Z             },
2026-06-15T15:10:07.7978523Z             {
2026-06-15T15:10:07.7978675Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7978875Z               "line": 987
2026-06-15T15:10:07.7979056Z             },
2026-06-15T15:10:07.7979157Z             {
2026-06-15T15:10:07.7979295Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7979414Z               "line": 1001
2026-06-15T15:10:07.7979515Z             },
2026-06-15T15:10:07.7979614Z             {
2026-06-15T15:10:07.7979753Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7979872Z               "line": 1117
2026-06-15T15:10:07.7979981Z             },
2026-06-15T15:10:07.7980077Z             {
2026-06-15T15:10:07.7980220Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7980433Z               "line": 1132
2026-06-15T15:10:07.7980544Z             },
2026-06-15T15:10:07.7980642Z             {
2026-06-15T15:10:07.7980791Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7980911Z               "line": 1243
2026-06-15T15:10:07.7981019Z             },
2026-06-15T15:10:07.7981125Z             {
2026-06-15T15:10:07.7981268Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7981387Z               "line": 1254
2026-06-15T15:10:07.7981488Z             }
2026-06-15T15:10:07.7981592Z           ]
2026-06-15T15:10:07.7981702Z         }
2026-06-15T15:10:07.7981793Z       }
2026-06-15T15:10:07.7981898Z     },
2026-06-15T15:10:07.7982002Z     {
2026-06-15T15:10:07.7982122Z       "id": "REQ-MANIFEST-2",
2026-06-15T15:10:07.7982644Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-15T15:10:07.7982778Z       "requiredStages": [
2026-06-15T15:10:07.7982885Z         "doc",
2026-06-15T15:10:07.7982991Z         "impl",
2026-06-15T15:10:07.7983086Z         "unit"
2026-06-15T15:10:07.7983186Z       ],
2026-06-15T15:10:07.7983310Z       "stages": {
2026-06-15T15:10:07.7983415Z         "doc": {
2026-06-15T15:10:07.7983529Z           "complete": true,
2026-06-15T15:10:07.7983644Z           "evidence": [
2026-06-15T15:10:07.7983744Z             {
2026-06-15T15:10:07.7983867Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.7983978Z               "line": 75
2026-06-15T15:10:07.7984078Z             }
2026-06-15T15:10:07.7984182Z           ]
2026-06-15T15:10:07.7984278Z         },
2026-06-15T15:10:07.7984392Z         "impl": {
2026-06-15T15:10:07.7984502Z           "complete": true,
2026-06-15T15:10:07.7984617Z           "evidence": [
2026-06-15T15:10:07.7984707Z             {
2026-06-15T15:10:07.7984850Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.7984970Z               "line": 62
2026-06-15T15:10:07.7985069Z             },
2026-06-15T15:10:07.7985179Z             {
2026-06-15T15:10:07.7985318Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.7985436Z               "line": 15
2026-06-15T15:10:07.7985536Z             },
2026-06-15T15:10:07.7985654Z             {
2026-06-15T15:10:07.7985800Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.7985901Z               "line": 65
2026-06-15T15:10:07.7986011Z             },
2026-06-15T15:10:07.7986115Z             {
2026-06-15T15:10:07.7986273Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.7986377Z               "line": 83
2026-06-15T15:10:07.7986482Z             },
2026-06-15T15:10:07.7986587Z             {
2026-06-15T15:10:07.7986730Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.7986845Z               "line": 183
2026-06-15T15:10:07.7986949Z             },
2026-06-15T15:10:07.7987064Z             {
2026-06-15T15:10:07.7987208Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7987321Z               "line": 482
2026-06-15T15:10:07.7987431Z             },
2026-06-15T15:10:07.7987532Z             {
2026-06-15T15:10:07.7987684Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7987903Z               "line": 508
2026-06-15T15:10:07.7988012Z             },
2026-06-15T15:10:07.7988116Z             {
2026-06-15T15:10:07.7988272Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7988385Z               "line": 626
2026-06-15T15:10:07.7988486Z             },
2026-06-15T15:10:07.7988591Z             {
2026-06-15T15:10:07.7988725Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7988840Z               "line": 651
2026-06-15T15:10:07.7989010Z             },
2026-06-15T15:10:07.7989112Z             {
2026-06-15T15:10:07.7989259Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7989526Z               "line": 674
2026-06-15T15:10:07.7989659Z             },
2026-06-15T15:10:07.7989765Z             {
2026-06-15T15:10:07.7989912Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7990017Z               "line": 689
2026-06-15T15:10:07.7992771Z             },
2026-06-15T15:10:07.7992916Z             {
2026-06-15T15:10:07.7993063Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7993181Z               "line": 4993
2026-06-15T15:10:07.7993281Z             },
2026-06-15T15:10:07.7993380Z             {
2026-06-15T15:10:07.7993517Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7993637Z               "line": 5007
2026-06-15T15:10:07.7993737Z             },
2026-06-15T15:10:07.7993836Z             {
2026-06-15T15:10:07.7993980Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.7994084Z               "line": 5041
2026-06-15T15:10:07.7994185Z             }
2026-06-15T15:10:07.7994304Z           ]
2026-06-15T15:10:07.7994408Z         },
2026-06-15T15:10:07.7994519Z         "int": {
2026-06-15T15:10:07.7994638Z           "complete": false,
2026-06-15T15:10:07.7994751Z           "evidence": []
2026-06-15T15:10:07.7994848Z         },
2026-06-15T15:10:07.7994957Z         "unit": {
2026-06-15T15:10:07.7995076Z           "complete": true,
2026-06-15T15:10:07.7995197Z           "evidence": [
2026-06-15T15:10:07.7995295Z             {
2026-06-15T15:10:07.7995454Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.7995568Z               "line": 920
2026-06-15T15:10:07.7995668Z             },
2026-06-15T15:10:07.7995783Z             {
2026-06-15T15:10:07.7995939Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.7996057Z               "line": 211
2026-06-15T15:10:07.7996162Z             },
2026-06-15T15:10:07.7996266Z             {
2026-06-15T15:10:07.7996418Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.7996542Z               "line": 272
2026-06-15T15:10:07.7996641Z             },
2026-06-15T15:10:07.7996742Z             {
2026-06-15T15:10:07.7996891Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.7997004Z               "line": 313
2026-06-15T15:10:07.7997105Z             },
2026-06-15T15:10:07.7997210Z             {
2026-06-15T15:10:07.7997352Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.7997467Z               "line": 325
2026-06-15T15:10:07.7997567Z             },
2026-06-15T15:10:07.7997662Z             {
2026-06-15T15:10:07.7997810Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.7997919Z               "line": 336
2026-06-15T15:10:07.7998021Z             },
2026-06-15T15:10:07.7998121Z             {
2026-06-15T15:10:07.7998263Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.7998374Z               "line": 345
2026-06-15T15:10:07.7998477Z             },
2026-06-15T15:10:07.7998586Z             {
2026-06-15T15:10:07.7998734Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.7998832Z               "line": 361
2026-06-15T15:10:07.7999032Z             },
2026-06-15T15:10:07.7999137Z             {
2026-06-15T15:10:07.7999280Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.7999528Z               "line": 444
2026-06-15T15:10:07.7999643Z             },
2026-06-15T15:10:07.7999743Z             {
2026-06-15T15:10:07.7999895Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.7999996Z               "line": 877
2026-06-15T15:10:07.8000095Z             },
2026-06-15T15:10:07.8000191Z             {
2026-06-15T15:10:07.8000335Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.8000443Z               "line": 901
2026-06-15T15:10:07.8000548Z             },
2026-06-15T15:10:07.8000659Z             {
2026-06-15T15:10:07.8000806Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.8001020Z               "line": 927
2026-06-15T15:10:07.8001125Z             },
2026-06-15T15:10:07.8001226Z             {
2026-06-15T15:10:07.8001373Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.8001486Z               "line": 946
2026-06-15T15:10:07.8001597Z             },
2026-06-15T15:10:07.8001688Z             {
2026-06-15T15:10:07.8001835Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.8001950Z               "line": 977
2026-06-15T15:10:07.8002049Z             },
2026-06-15T15:10:07.8002149Z             {
2026-06-15T15:10:07.8002293Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.8002402Z               "line": 309
2026-06-15T15:10:07.8002507Z             },
2026-06-15T15:10:07.8002608Z             {
2026-06-15T15:10:07.8002741Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T15:10:07.8002842Z               "line": 487
2026-06-15T15:10:07.8002937Z             },
2026-06-15T15:10:07.8003036Z             {
2026-06-15T15:10:07.8003171Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8003289Z               "line": 7088
2026-06-15T15:10:07.8003394Z             },
2026-06-15T15:10:07.8003496Z             {
2026-06-15T15:10:07.8003623Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8003736Z               "line": 7972
2026-06-15T15:10:07.8003836Z             }
2026-06-15T15:10:07.8003935Z           ]
2026-06-15T15:10:07.8004039Z         }
2026-06-15T15:10:07.8004130Z       }
2026-06-15T15:10:07.8004236Z     },
2026-06-15T15:10:07.8004334Z     {
2026-06-15T15:10:07.8004459Z       "id": "REQ-MANIFEST-3",
2026-06-15T15:10:07.8005146Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-15T15:10:07.8005265Z       "requiredStages": [
2026-06-15T15:10:07.8005369Z         "doc",
2026-06-15T15:10:07.8005475Z         "impl",
2026-06-15T15:10:07.8005589Z         "unit"
2026-06-15T15:10:07.8005689Z       ],
2026-06-15T15:10:07.8005790Z       "stages": {
2026-06-15T15:10:07.8005889Z         "doc": {
2026-06-15T15:10:07.8006009Z           "complete": true,
2026-06-15T15:10:07.8006119Z           "evidence": [
2026-06-15T15:10:07.8006223Z             {
2026-06-15T15:10:07.8006343Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.8006457Z               "line": 81
2026-06-15T15:10:07.8006565Z             }
2026-06-15T15:10:07.8006670Z           ]
2026-06-15T15:10:07.8006774Z         },
2026-06-15T15:10:07.8006882Z         "impl": {
2026-06-15T15:10:07.8006997Z           "complete": true,
2026-06-15T15:10:07.8007107Z           "evidence": [
2026-06-15T15:10:07.8007206Z             {
2026-06-15T15:10:07.8007370Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.8007470Z               "line": 72
2026-06-15T15:10:07.8007569Z             },
2026-06-15T15:10:07.8007670Z             {
2026-06-15T15:10:07.8007817Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.8007922Z               "line": 101
2026-06-15T15:10:07.8008023Z             },
2026-06-15T15:10:07.8008123Z             {
2026-06-15T15:10:07.8008271Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.8008470Z               "line": 132
2026-06-15T15:10:07.8008566Z             },
2026-06-15T15:10:07.8008667Z             {
2026-06-15T15:10:07.8008828Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.8009015Z               "line": 532
2026-06-15T15:10:07.8009118Z             },
2026-06-15T15:10:07.8009218Z             {
2026-06-15T15:10:07.8009364Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.8009478Z               "line": 588
2026-06-15T15:10:07.8009578Z             },
2026-06-15T15:10:07.8009684Z             {
2026-06-15T15:10:07.8009821Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8010045Z               "line": 5054
2026-06-15T15:10:07.8010154Z             },
2026-06-15T15:10:07.8010251Z             {
2026-06-15T15:10:07.8010383Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8010484Z               "line": 5080
2026-06-15T15:10:07.8010589Z             }
2026-06-15T15:10:07.8010694Z           ]
2026-06-15T15:10:07.8010793Z         },
2026-06-15T15:10:07.8010895Z         "int": {
2026-06-15T15:10:07.8011009Z           "complete": false,
2026-06-15T15:10:07.8011123Z           "evidence": []
2026-06-15T15:10:07.8011229Z         },
2026-06-15T15:10:07.8011333Z         "unit": {
2026-06-15T15:10:07.8011448Z           "complete": true,
2026-06-15T15:10:07.8011562Z           "evidence": [
2026-06-15T15:10:07.8011666Z             {
2026-06-15T15:10:07.8011811Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.8011923Z               "line": 371
2026-06-15T15:10:07.8012023Z             },
2026-06-15T15:10:07.8012123Z             {
2026-06-15T15:10:07.8012266Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.8012380Z               "line": 429
2026-06-15T15:10:07.8012481Z             },
2026-06-15T15:10:07.8012577Z             {
2026-06-15T15:10:07.8012724Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.8012829Z               "line": 1001
2026-06-15T15:10:07.8012929Z             },
2026-06-15T15:10:07.8013034Z             {
2026-06-15T15:10:07.8013168Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8013277Z               "line": 7143
2026-06-15T15:10:07.8013378Z             }
2026-06-15T15:10:07.8013478Z           ]
2026-06-15T15:10:07.8013582Z         }
2026-06-15T15:10:07.8013683Z       }
2026-06-15T15:10:07.8013774Z     },
2026-06-15T15:10:07.8013873Z     {
2026-06-15T15:10:07.8013992Z       "id": "REQ-MANIFEST-4",
2026-06-15T15:10:07.8014723Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-15T15:10:07.8014847Z       "requiredStages": [
2026-06-15T15:10:07.8014947Z         "doc",
2026-06-15T15:10:07.8015048Z         "impl",
2026-06-15T15:10:07.8015148Z         "unit"
2026-06-15T15:10:07.8015252Z       ],
2026-06-15T15:10:07.8015353Z       "stages": {
2026-06-15T15:10:07.8015463Z         "doc": {
2026-06-15T15:10:07.8015581Z           "complete": true,
2026-06-15T15:10:07.8015692Z           "evidence": [
2026-06-15T15:10:07.8015792Z             {
2026-06-15T15:10:07.8015915Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.8016026Z               "line": 88
2026-06-15T15:10:07.8016130Z             }
2026-06-15T15:10:07.8016230Z           ]
2026-06-15T15:10:07.8016331Z         },
2026-06-15T15:10:07.8016439Z         "impl": {
2026-06-15T15:10:07.8016564Z           "complete": true,
2026-06-15T15:10:07.8016670Z           "evidence": [
2026-06-15T15:10:07.8016778Z             {
2026-06-15T15:10:07.8016923Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.8017027Z               "line": 80
2026-06-15T15:10:07.8017125Z             },
2026-06-15T15:10:07.8017225Z             {
2026-06-15T15:10:07.8017381Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.8017605Z               "line": 152
2026-06-15T15:10:07.8017705Z             },
2026-06-15T15:10:07.8017804Z             {
2026-06-15T15:10:07.8017939Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.8018044Z               "line": 83
2026-06-15T15:10:07.8018148Z             },
2026-06-15T15:10:07.8018254Z             {
2026-06-15T15:10:07.8018391Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8018506Z               "line": 505
2026-06-15T15:10:07.8018607Z             },
2026-06-15T15:10:07.8018706Z             {
2026-06-15T15:10:07.8018855Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8019117Z               "line": 530
2026-06-15T15:10:07.8019227Z             }
2026-06-15T15:10:07.8019325Z           ]
2026-06-15T15:10:07.8019427Z         },
2026-06-15T15:10:07.8019523Z         "int": {
2026-06-15T15:10:07.8019645Z           "complete": false,
2026-06-15T15:10:07.8019763Z           "evidence": []
2026-06-15T15:10:07.8019869Z         },
2026-06-15T15:10:07.8019980Z         "unit": {
2026-06-15T15:10:07.8020095Z           "complete": true,
2026-06-15T15:10:07.8020200Z           "evidence": [
2026-06-15T15:10:07.8020305Z             {
2026-06-15T15:10:07.8020458Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.8020563Z               "line": 1067
2026-06-15T15:10:07.8020657Z             },
2026-06-15T15:10:07.8020754Z             {
2026-06-15T15:10:07.8020897Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.8021015Z               "line": 1100
2026-06-15T15:10:07.8021121Z             },
2026-06-15T15:10:07.8021230Z             {
2026-06-15T15:10:07.8021373Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8021474Z               "line": 862
2026-06-15T15:10:07.8021574Z             }
2026-06-15T15:10:07.8021683Z           ]
2026-06-15T15:10:07.8021770Z         }
2026-06-15T15:10:07.8021868Z       }
2026-06-15T15:10:07.8021969Z     },
2026-06-15T15:10:07.8022075Z     {
2026-06-15T15:10:07.8022192Z       "id": "REQ-MANIFEST-5",
2026-06-15T15:10:07.8025117Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-15T15:10:07.8025245Z       "requiredStages": [
2026-06-15T15:10:07.8025346Z         "doc",
2026-06-15T15:10:07.8025445Z         "impl",
2026-06-15T15:10:07.8025555Z         "unit"
2026-06-15T15:10:07.8025651Z       ],
2026-06-15T15:10:07.8025760Z       "stages": {
2026-06-15T15:10:07.8025865Z         "doc": {
2026-06-15T15:10:07.8025985Z           "complete": true,
2026-06-15T15:10:07.8026099Z           "evidence": [
2026-06-15T15:10:07.8026200Z             {
2026-06-15T15:10:07.8026319Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.8026442Z               "line": 83
2026-06-15T15:10:07.8026543Z             }
2026-06-15T15:10:07.8026647Z           ]
2026-06-15T15:10:07.8026747Z         },
2026-06-15T15:10:07.8026858Z         "impl": {
2026-06-15T15:10:07.8026971Z           "complete": true,
2026-06-15T15:10:07.8027086Z           "evidence": [
2026-06-15T15:10:07.8027290Z             {
2026-06-15T15:10:07.8027445Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.8027554Z               "line": 120
2026-06-15T15:10:07.8027653Z             }
2026-06-15T15:10:07.8027762Z           ]
2026-06-15T15:10:07.8027862Z         },
2026-06-15T15:10:07.8027955Z         "int": {
2026-06-15T15:10:07.8028059Z           "complete": false,
2026-06-15T15:10:07.8028170Z           "evidence": []
2026-06-15T15:10:07.8028265Z         },
2026-06-15T15:10:07.8028374Z         "unit": {
2026-06-15T15:10:07.8028490Z           "complete": true,
2026-06-15T15:10:07.8028599Z           "evidence": [
2026-06-15T15:10:07.8028703Z             {
2026-06-15T15:10:07.8029008Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T15:10:07.8029124Z               "line": 404
2026-06-15T15:10:07.8029223Z             },
2026-06-15T15:10:07.8029333Z             {
2026-06-15T15:10:07.8029472Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.8029591Z               "line": 1074
2026-06-15T15:10:07.8029691Z             },
2026-06-15T15:10:07.8029792Z             {
2026-06-15T15:10:07.8029943Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.8030059Z               "line": 1103
2026-06-15T15:10:07.8030154Z             },
2026-06-15T15:10:07.8030247Z             {
2026-06-15T15:10:07.8030386Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.8030503Z               "line": 1143
2026-06-15T15:10:07.8030602Z             },
2026-06-15T15:10:07.8030712Z             {
2026-06-15T15:10:07.8030856Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.8030974Z               "line": 1158
2026-06-15T15:10:07.8031085Z             }
2026-06-15T15:10:07.8031180Z           ]
2026-06-15T15:10:07.8031280Z         }
2026-06-15T15:10:07.8031376Z       }
2026-06-15T15:10:07.8031476Z     },
2026-06-15T15:10:07.8031575Z     {
2026-06-15T15:10:07.8031700Z       "id": "REQ-MANIFEST-6",
2026-06-15T15:10:07.8033955Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-15T15:10:07.8034082Z       "requiredStages": [
2026-06-15T15:10:07.8034193Z         "doc",
2026-06-15T15:10:07.8034297Z         "unit"
2026-06-15T15:10:07.8034416Z       ],
2026-06-15T15:10:07.8034536Z       "stages": {
2026-06-15T15:10:07.8034640Z         "doc": {
2026-06-15T15:10:07.8034764Z           "complete": true,
2026-06-15T15:10:07.8034899Z           "evidence": [
2026-06-15T15:10:07.8035012Z             {
2026-06-15T15:10:07.8035137Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.8035242Z               "line": 139
2026-06-15T15:10:07.8035345Z             }
2026-06-15T15:10:07.8035450Z           ]
2026-06-15T15:10:07.8035550Z         },
2026-06-15T15:10:07.8035658Z         "impl": {
2026-06-15T15:10:07.8035772Z           "complete": false,
2026-06-15T15:10:07.8035892Z           "evidence": []
2026-06-15T15:10:07.8035991Z         },
2026-06-15T15:10:07.8036106Z         "int": {
2026-06-15T15:10:07.8036221Z           "complete": false,
2026-06-15T15:10:07.8036339Z           "evidence": []
2026-06-15T15:10:07.8036450Z         },
2026-06-15T15:10:07.8036559Z         "unit": {
2026-06-15T15:10:07.8036678Z           "complete": true,
2026-06-15T15:10:07.8036789Z           "evidence": [
2026-06-15T15:10:07.8036898Z             {
2026-06-15T15:10:07.8037045Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T15:10:07.8037274Z               "line": 1180
2026-06-15T15:10:07.8037380Z             }
2026-06-15T15:10:07.8037479Z           ]
2026-06-15T15:10:07.8037584Z         }
2026-06-15T15:10:07.8037685Z       }
2026-06-15T15:10:07.8037790Z     },
2026-06-15T15:10:07.8037884Z     {
2026-06-15T15:10:07.8038005Z       "id": "REQ-MANIFEST-7",
2026-06-15T15:10:07.8041138Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-15T15:10:07.8041392Z       "requiredStages": [
2026-06-15T15:10:07.8041501Z         "doc",
2026-06-15T15:10:07.8041612Z         "impl",
2026-06-15T15:10:07.8041717Z         "unit"
2026-06-15T15:10:07.8041816Z       ],
2026-06-15T15:10:07.8041931Z       "stages": {
2026-06-15T15:10:07.8042026Z         "doc": {
2026-06-15T15:10:07.8042164Z           "complete": true,
2026-06-15T15:10:07.8042274Z           "evidence": [
2026-06-15T15:10:07.8042379Z             {
2026-06-15T15:10:07.8042513Z               "path": "docs/MANIFEST.md",
2026-06-15T15:10:07.8042613Z               "line": 34
2026-06-15T15:10:07.8042718Z             }
2026-06-15T15:10:07.8042823Z           ]
2026-06-15T15:10:07.8042932Z         },
2026-06-15T15:10:07.8043033Z         "impl": {
2026-06-15T15:10:07.8043153Z           "complete": true,
2026-06-15T15:10:07.8043266Z           "evidence": [
2026-06-15T15:10:07.8043366Z             {
2026-06-15T15:10:07.8043515Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T15:10:07.8043628Z               "line": 54
2026-06-15T15:10:07.8043722Z             }
2026-06-15T15:10:07.8043823Z           ]
2026-06-15T15:10:07.8043924Z         },
2026-06-15T15:10:07.8044032Z         "int": {
2026-06-15T15:10:07.8044147Z           "complete": false,
2026-06-15T15:10:07.8044262Z           "evidence": []
2026-06-15T15:10:07.8044366Z         },
2026-06-15T15:10:07.8044477Z         "unit": {
2026-06-15T15:10:07.8044596Z           "complete": true,
2026-06-15T15:10:07.8044710Z           "evidence": [
2026-06-15T15:10:07.8044815Z             {
2026-06-15T15:10:07.8044962Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.8045078Z               "line": 1260
2026-06-15T15:10:07.8045177Z             }
2026-06-15T15:10:07.8045282Z           ]
2026-06-15T15:10:07.8045383Z         }
2026-06-15T15:10:07.8045483Z       }
2026-06-15T15:10:07.8045587Z     },
2026-06-15T15:10:07.8045687Z     {
2026-06-15T15:10:07.8045807Z       "id": "REQ-MESH-1",
2026-06-15T15:10:07.8047925Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-15T15:10:07.8048172Z       "requiredStages": [
2026-06-15T15:10:07.8048279Z         "impl",
2026-06-15T15:10:07.8048387Z         "unit",
2026-06-15T15:10:07.8048492Z         "int"
2026-06-15T15:10:07.8048598Z       ],
2026-06-15T15:10:07.8048707Z       "stages": {
2026-06-15T15:10:07.8048811Z         "doc": {
2026-06-15T15:10:07.8048920Z           "complete": false,
2026-06-15T15:10:07.8049114Z           "evidence": []
2026-06-15T15:10:07.8049214Z         },
2026-06-15T15:10:07.8049329Z         "impl": {
2026-06-15T15:10:07.8049442Z           "complete": true,
2026-06-15T15:10:07.8049562Z           "evidence": [
2026-06-15T15:10:07.8049790Z             {
2026-06-15T15:10:07.8049934Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.8050043Z               "line": 771
2026-06-15T15:10:07.8050148Z             },
2026-06-15T15:10:07.8050245Z             {
2026-06-15T15:10:07.8050401Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8050526Z               "line": 38
2026-06-15T15:10:07.8050634Z             },
2026-06-15T15:10:07.8050725Z             {
2026-06-15T15:10:07.8050884Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8050997Z               "line": 161
2026-06-15T15:10:07.8051107Z             },
2026-06-15T15:10:07.8051213Z             {
2026-06-15T15:10:07.8051368Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8051492Z               "line": 206
2026-06-15T15:10:07.8051586Z             },
2026-06-15T15:10:07.8051690Z             {
2026-06-15T15:10:07.8051838Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8051957Z               "line": 57
2026-06-15T15:10:07.8052056Z             },
2026-06-15T15:10:07.8052167Z             {
2026-06-15T15:10:07.8052329Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T15:10:07.8052444Z               "line": 24
2026-06-15T15:10:07.8052558Z             },
2026-06-15T15:10:07.8052658Z             {
2026-06-15T15:10:07.8052820Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T15:10:07.8052925Z               "line": 142
2026-06-15T15:10:07.8053034Z             },
2026-06-15T15:10:07.8053140Z             {
2026-06-15T15:10:07.8053297Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T15:10:07.8053403Z               "line": 162
2026-06-15T15:10:07.8053497Z             }
2026-06-15T15:10:07.8053602Z           ]
2026-06-15T15:10:07.8053698Z         },
2026-06-15T15:10:07.8053798Z         "int": {
2026-06-15T15:10:07.8053917Z           "complete": true,
2026-06-15T15:10:07.8054037Z           "evidence": [
2026-06-15T15:10:07.8054150Z             {
2026-06-15T15:10:07.8054306Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T15:10:07.8054412Z               "line": 67
2026-06-15T15:10:07.8054521Z             },
2026-06-15T15:10:07.8054616Z             {
2026-06-15T15:10:07.8054779Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T15:10:07.8054883Z               "line": 93
2026-06-15T15:10:07.8054989Z             },
2026-06-15T15:10:07.8055094Z             {
2026-06-15T15:10:07.8055245Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T15:10:07.8055351Z               "line": 117
2026-06-15T15:10:07.8055451Z             },
2026-06-15T15:10:07.8055555Z             {
2026-06-15T15:10:07.8055704Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T15:10:07.8055823Z               "line": 134
2026-06-15T15:10:07.8055933Z             }
2026-06-15T15:10:07.8056043Z           ]
2026-06-15T15:10:07.8056162Z         },
2026-06-15T15:10:07.8056257Z         "unit": {
2026-06-15T15:10:07.8056377Z           "complete": true,
2026-06-15T15:10:07.8056480Z           "evidence": [
2026-06-15T15:10:07.8056585Z             {
2026-06-15T15:10:07.8056736Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8056950Z               "line": 427
2026-06-15T15:10:07.8057056Z             },
2026-06-15T15:10:07.8057159Z             {
2026-06-15T15:10:07.8057317Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T15:10:07.8057426Z               "line": 376
2026-06-15T15:10:07.8057536Z             },
2026-06-15T15:10:07.8057637Z             {
2026-06-15T15:10:07.8057803Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T15:10:07.8057914Z               "line": 412
2026-06-15T15:10:07.8058013Z             },
2026-06-15T15:10:07.8058112Z             {
2026-06-15T15:10:07.8058276Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T15:10:07.8058461Z               "line": 427
2026-06-15T15:10:07.8058562Z             },
2026-06-15T15:10:07.8058665Z             {
2026-06-15T15:10:07.8058825Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T15:10:07.8059029Z               "line": 438
2026-06-15T15:10:07.8059130Z             },
2026-06-15T15:10:07.8059230Z             {
2026-06-15T15:10:07.8059395Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T15:10:07.8059504Z               "line": 449
2026-06-15T15:10:07.8059612Z             },
2026-06-15T15:10:07.8059716Z             {
2026-06-15T15:10:07.8059874Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T15:10:07.8059988Z               "line": 460
2026-06-15T15:10:07.8060088Z             },
2026-06-15T15:10:07.8060194Z             {
2026-06-15T15:10:07.8060346Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T15:10:07.8060461Z               "line": 496
2026-06-15T15:10:07.8060576Z             },
2026-06-15T15:10:07.8060675Z             {
2026-06-15T15:10:07.8060838Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T15:10:07.8060937Z               "line": 519
2026-06-15T15:10:07.8061037Z             },
2026-06-15T15:10:07.8061139Z             {
2026-06-15T15:10:07.8061299Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T15:10:07.8061420Z               "line": 546
2026-06-15T15:10:07.8061514Z             }
2026-06-15T15:10:07.8061619Z           ]
2026-06-15T15:10:07.8061720Z         }
2026-06-15T15:10:07.8061824Z       }
2026-06-15T15:10:07.8061928Z     },
2026-06-15T15:10:07.8062028Z     {
2026-06-15T15:10:07.8062146Z       "id": "REQ-MESH-2",
2026-06-15T15:10:07.8064724Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-15T15:10:07.8064852Z       "requiredStages": [
2026-06-15T15:10:07.8064962Z         "impl",
2026-06-15T15:10:07.8065063Z         "unit",
2026-06-15T15:10:07.8065176Z         "int"
2026-06-15T15:10:07.8065287Z       ],
2026-06-15T15:10:07.8065387Z       "stages": {
2026-06-15T15:10:07.8065491Z         "doc": {
2026-06-15T15:10:07.8065606Z           "complete": false,
2026-06-15T15:10:07.8065725Z           "evidence": []
2026-06-15T15:10:07.8065830Z         },
2026-06-15T15:10:07.8065931Z         "impl": {
2026-06-15T15:10:07.8066050Z           "complete": true,
2026-06-15T15:10:07.8066159Z           "evidence": [
2026-06-15T15:10:07.8066269Z             {
2026-06-15T15:10:07.8066407Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.8066650Z               "line": 660
2026-06-15T15:10:07.8066755Z             },
2026-06-15T15:10:07.8066866Z             {
2026-06-15T15:10:07.8067016Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8067125Z               "line": 118
2026-06-15T15:10:07.8067240Z             },
2026-06-15T15:10:07.8067338Z             {
2026-06-15T15:10:07.8067481Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8067597Z               "line": 347
2026-06-15T15:10:07.8067700Z             },
2026-06-15T15:10:07.8067796Z             {
2026-06-15T15:10:07.8067939Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8068154Z               "line": 389
2026-06-15T15:10:07.8068254Z             },
2026-06-15T15:10:07.8068358Z             {
2026-06-15T15:10:07.8068521Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8068649Z               "line": 403
2026-06-15T15:10:07.8068760Z             },
2026-06-15T15:10:07.8068864Z             {
2026-06-15T15:10:07.8069279Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8069603Z               "line": 492
2026-06-15T15:10:07.8069851Z             },
2026-06-15T15:10:07.8070059Z             {
2026-06-15T15:10:07.8070300Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8070591Z               "line": 507
2026-06-15T15:10:07.8070812Z             },
2026-06-15T15:10:07.8071021Z             {
2026-06-15T15:10:07.8071259Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8071550Z               "line": 534
2026-06-15T15:10:07.8071774Z             },
2026-06-15T15:10:07.8071970Z             {
2026-06-15T15:10:07.8072218Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8072517Z               "line": 207
2026-06-15T15:10:07.8072734Z             },
2026-06-15T15:10:07.8072939Z             {
2026-06-15T15:10:07.8073186Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8073482Z               "line": 755
2026-06-15T15:10:07.8073712Z             },
2026-06-15T15:10:07.8073922Z             {
2026-06-15T15:10:07.8074179Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8074518Z               "line": 816
2026-06-15T15:10:07.8074756Z             },
2026-06-15T15:10:07.8074974Z             {
2026-06-15T15:10:07.8075224Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8075513Z               "line": 869
2026-06-15T15:10:07.8075741Z             },
2026-06-15T15:10:07.8075933Z             {
2026-06-15T15:10:07.8076181Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8076477Z               "line": 891
2026-06-15T15:10:07.8076699Z             },
2026-06-15T15:10:07.8076900Z             {
2026-06-15T15:10:07.8077139Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.8077422Z               "line": 122
2026-06-15T15:10:07.8077657Z             },
2026-06-15T15:10:07.8077861Z             {
2026-06-15T15:10:07.8078104Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8078399Z               "line": 44
2026-06-15T15:10:07.8078613Z             },
2026-06-15T15:10:07.8078824Z             {
2026-06-15T15:10:07.8079157Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8079443Z               "line": 184
2026-06-15T15:10:07.8079678Z             },
2026-06-15T15:10:07.8079881Z             {
2026-06-15T15:10:07.8080115Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8080392Z               "line": 211
2026-06-15T15:10:07.8080625Z             },
2026-06-15T15:10:07.8080836Z             {
2026-06-15T15:10:07.8081071Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8081352Z               "line": 251
2026-06-15T15:10:07.8081581Z             },
2026-06-15T15:10:07.8081785Z             {
2026-06-15T15:10:07.8087299Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8087638Z               "line": 275
2026-06-15T15:10:07.8087870Z             },
2026-06-15T15:10:07.8088070Z             {
2026-06-15T15:10:07.8088313Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8088601Z               "line": 289
2026-06-15T15:10:07.8088830Z             },
2026-06-15T15:10:07.8089135Z             {
2026-06-15T15:10:07.8089374Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8089670Z               "line": 300
2026-06-15T15:10:07.8089895Z             },
2026-06-15T15:10:07.8090099Z             {
2026-06-15T15:10:07.8090500Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8090801Z               "line": 313
2026-06-15T15:10:07.8091028Z             }
2026-06-15T15:10:07.8091265Z           ]
2026-06-15T15:10:07.8091454Z         },
2026-06-15T15:10:07.8091655Z         "int": {
2026-06-15T15:10:07.8091875Z           "complete": true,
2026-06-15T15:10:07.8092113Z           "evidence": [
2026-06-15T15:10:07.8092331Z             {
2026-06-15T15:10:07.8092599Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T15:10:07.8092913Z               "line": 116
2026-06-15T15:10:07.8093148Z             },
2026-06-15T15:10:07.8093362Z             {
2026-06-15T15:10:07.8093618Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T15:10:07.8093916Z               "line": 181
2026-06-15T15:10:07.8094151Z             }
2026-06-15T15:10:07.8094389Z           ]
2026-06-15T15:10:07.8094578Z         },
2026-06-15T15:10:07.8094770Z         "unit": {
2026-06-15T15:10:07.8094999Z           "complete": true,
2026-06-15T15:10:07.8095246Z           "evidence": [
2026-06-15T15:10:07.8095466Z             {
2026-06-15T15:10:07.8095719Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8096011Z               "line": 999
2026-06-15T15:10:07.8096306Z             },
2026-06-15T15:10:07.8096523Z             {
2026-06-15T15:10:07.8096781Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8097072Z               "line": 1016
2026-06-15T15:10:07.8097306Z             },
2026-06-15T15:10:07.8097510Z             {
2026-06-15T15:10:07.8097762Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8098059Z               "line": 1024
2026-06-15T15:10:07.8098283Z             },
2026-06-15T15:10:07.8098493Z             {
2026-06-15T15:10:07.8098740Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8099108Z               "line": 1048
2026-06-15T15:10:07.8099343Z             },
2026-06-15T15:10:07.8099558Z             {
2026-06-15T15:10:07.8099816Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8100111Z               "line": 1499
2026-06-15T15:10:07.8100339Z             },
2026-06-15T15:10:07.8100544Z             {
2026-06-15T15:10:07.8100789Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8101080Z               "line": 347
2026-06-15T15:10:07.8101298Z             },
2026-06-15T15:10:07.8101498Z             {
2026-06-15T15:10:07.8101731Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8102010Z               "line": 370
2026-06-15T15:10:07.8102229Z             },
2026-06-15T15:10:07.8102435Z             {
2026-06-15T15:10:07.8102678Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8102959Z               "line": 407
2026-06-15T15:10:07.8103169Z             },
2026-06-15T15:10:07.8103369Z             {
2026-06-15T15:10:07.8103598Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8103883Z               "line": 431
2026-06-15T15:10:07.8104093Z             },
2026-06-15T15:10:07.8104288Z             {
2026-06-15T15:10:07.8104533Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8104805Z               "line": 483
2026-06-15T15:10:07.8105025Z             },
2026-06-15T15:10:07.8105345Z             {
2026-06-15T15:10:07.8105588Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8105864Z               "line": 499
2026-06-15T15:10:07.8106079Z             },
2026-06-15T15:10:07.8106284Z             {
2026-06-15T15:10:07.8106519Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8106799Z               "line": 514
2026-06-15T15:10:07.8107017Z             },
2026-06-15T15:10:07.8107223Z             {
2026-06-15T15:10:07.8107460Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8107736Z               "line": 531
2026-06-15T15:10:07.8107957Z             }
2026-06-15T15:10:07.8108276Z           ]
2026-06-15T15:10:07.8108477Z         }
2026-06-15T15:10:07.8108666Z       }
2026-06-15T15:10:07.8108858Z     },
2026-06-15T15:10:07.8109116Z     {
2026-06-15T15:10:07.8109347Z       "id": "REQ-MESH-3",
2026-06-15T15:10:07.8111257Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-15T15:10:07.8112875Z       "requiredStages": [
2026-06-15T15:10:07.8113103Z         "impl",
2026-06-15T15:10:07.8113314Z         "unit",
2026-06-15T15:10:07.8113524Z         "int"
2026-06-15T15:10:07.8113738Z       ],
2026-06-15T15:10:07.8113934Z       "stages": {
2026-06-15T15:10:07.8114148Z         "doc": {
2026-06-15T15:10:07.8114372Z           "complete": false,
2026-06-15T15:10:07.8114611Z           "evidence": []
2026-06-15T15:10:07.8114843Z         },
2026-06-15T15:10:07.8115041Z         "impl": {
2026-06-15T15:10:07.8115271Z           "complete": true,
2026-06-15T15:10:07.8115504Z           "evidence": [
2026-06-15T15:10:07.8115717Z             {
2026-06-15T15:10:07.8115967Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.8116262Z               "line": 641
2026-06-15T15:10:07.8116477Z             }
2026-06-15T15:10:07.8116686Z           ]
2026-06-15T15:10:07.8116882Z         },
2026-06-15T15:10:07.8117079Z         "int": {
2026-06-15T15:10:07.8117297Z           "complete": true,
2026-06-15T15:10:07.8117535Z           "evidence": [
2026-06-15T15:10:07.8117748Z             {
2026-06-15T15:10:07.8117996Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T15:10:07.8118296Z               "line": 373
2026-06-15T15:10:07.8118508Z             },
2026-06-15T15:10:07.8118717Z             {
2026-06-15T15:10:07.8119042Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T15:10:07.8119337Z               "line": 436
2026-06-15T15:10:07.8119565Z             }
2026-06-15T15:10:07.8119780Z           ]
2026-06-15T15:10:07.8119979Z         },
2026-06-15T15:10:07.8120182Z         "unit": {
2026-06-15T15:10:07.8120398Z           "complete": true,
2026-06-15T15:10:07.8120625Z           "evidence": [
2026-06-15T15:10:07.8120844Z             {
2026-06-15T15:10:07.8121083Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.8121369Z               "line": 910
2026-06-15T15:10:07.8121584Z             }
2026-06-15T15:10:07.8121793Z           ]
2026-06-15T15:10:07.8121984Z         }
2026-06-15T15:10:07.8122181Z       }
2026-06-15T15:10:07.8122370Z     },
2026-06-15T15:10:07.8122567Z     {
2026-06-15T15:10:07.8122769Z       "id": "REQ-MESH-4",
2026-06-15T15:10:07.8125125Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-15T15:10:07.8127295Z       "requiredStages": [
2026-06-15T15:10:07.8127532Z         "impl",
2026-06-15T15:10:07.8127733Z         "unit",
2026-06-15T15:10:07.8127934Z         "int"
2026-06-15T15:10:07.8128137Z       ],
2026-06-15T15:10:07.8128447Z       "stages": {
2026-06-15T15:10:07.8128662Z         "doc": {
2026-06-15T15:10:07.8128876Z           "complete": false,
2026-06-15T15:10:07.8129186Z           "evidence": []
2026-06-15T15:10:07.8129425Z         },
2026-06-15T15:10:07.8129635Z         "impl": {
2026-06-15T15:10:07.8129859Z           "complete": true,
2026-06-15T15:10:07.8130106Z           "evidence": [
2026-06-15T15:10:07.8130330Z             {
2026-06-15T15:10:07.8130582Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T15:10:07.8130880Z               "line": 33
2026-06-15T15:10:07.8131099Z             },
2026-06-15T15:10:07.8131305Z             {
2026-06-15T15:10:07.8131558Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8131849Z               "line": 68
2026-06-15T15:10:07.8132068Z             },
2026-06-15T15:10:07.8132283Z             {
2026-06-15T15:10:07.8132535Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8132836Z               "line": 111
2026-06-15T15:10:07.8133056Z             },
2026-06-15T15:10:07.8133268Z             {
2026-06-15T15:10:07.8133510Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8133805Z               "line": 462
2026-06-15T15:10:07.8134029Z             },
2026-06-15T15:10:07.8134243Z             {
2026-06-15T15:10:07.8134492Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8134796Z               "line": 711
2026-06-15T15:10:07.8135007Z             },
2026-06-15T15:10:07.8135220Z             {
2026-06-15T15:10:07.8135478Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8135769Z               "line": 725
2026-06-15T15:10:07.8135987Z             },
2026-06-15T15:10:07.8136190Z             {
2026-06-15T15:10:07.8136433Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.8136720Z               "line": 132
2026-06-15T15:10:07.8136945Z             },
2026-06-15T15:10:07.8137148Z             {
2026-06-15T15:10:07.8137397Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T15:10:07.8137682Z               "line": 26
2026-06-15T15:10:07.8137898Z             },
2026-06-15T15:10:07.8138097Z             {
2026-06-15T15:10:07.8138345Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T15:10:07.8138627Z               "line": 97
2026-06-15T15:10:07.8138855Z             },
2026-06-15T15:10:07.8139126Z             {
2026-06-15T15:10:07.8139374Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T15:10:07.8139651Z               "line": 119
2026-06-15T15:10:07.8139875Z             },
2026-06-15T15:10:07.8140080Z             {
2026-06-15T15:10:07.8140318Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.8140604Z               "line": 82
2026-06-15T15:10:07.8140825Z             },
2026-06-15T15:10:07.8141032Z             {
2026-06-15T15:10:07.8141278Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.8141569Z               "line": 111
2026-06-15T15:10:07.8141799Z             },
2026-06-15T15:10:07.8142008Z             {
2026-06-15T15:10:07.8142241Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.8142523Z               "line": 232
2026-06-15T15:10:07.8142757Z             },
2026-06-15T15:10:07.8143077Z             {
2026-06-15T15:10:07.8143325Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.8143606Z               "line": 245
2026-06-15T15:10:07.8143828Z             },
2026-06-15T15:10:07.8144038Z             {
2026-06-15T15:10:07.8144274Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8144546Z               "line": 4220
2026-06-15T15:10:07.8144770Z             }
2026-06-15T15:10:07.8144957Z           ]
2026-06-15T15:10:07.8145156Z         },
2026-06-15T15:10:07.8145361Z         "int": {
2026-06-15T15:10:07.8145567Z           "complete": true,
2026-06-15T15:10:07.8145795Z           "evidence": [
2026-06-15T15:10:07.8146148Z             {
2026-06-15T15:10:07.8146405Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T15:10:07.8146698Z               "line": 98
2026-06-15T15:10:07.8146922Z             },
2026-06-15T15:10:07.8147122Z             {
2026-06-15T15:10:07.8147365Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T15:10:07.8147661Z               "line": 140
2026-06-15T15:10:07.8147885Z             }
2026-06-15T15:10:07.8148085Z           ]
2026-06-15T15:10:07.8148272Z         },
2026-06-15T15:10:07.8148468Z         "unit": {
2026-06-15T15:10:07.8148691Z           "complete": true,
2026-06-15T15:10:07.8148929Z           "evidence": [
2026-06-15T15:10:07.8149210Z             {
2026-06-15T15:10:07.8149477Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T15:10:07.8149773Z               "line": 178
2026-06-15T15:10:07.8149986Z             },
2026-06-15T15:10:07.8150192Z             {
2026-06-15T15:10:07.8150435Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T15:10:07.8150745Z               "line": 242
2026-06-15T15:10:07.8150970Z             },
2026-06-15T15:10:07.8151169Z             {
2026-06-15T15:10:07.8151427Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8151721Z               "line": 1079
2026-06-15T15:10:07.8151953Z             },
2026-06-15T15:10:07.8152163Z             {
2026-06-15T15:10:07.8152411Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8152707Z               "line": 1109
2026-06-15T15:10:07.8152936Z             },
2026-06-15T15:10:07.8153145Z             {
2026-06-15T15:10:07.8153393Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T15:10:07.8153693Z               "line": 1129
2026-06-15T15:10:07.8153918Z             },
2026-06-15T15:10:07.8154127Z             {
2026-06-15T15:10:07.8154379Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T15:10:07.8154682Z               "line": 602
2026-06-15T15:10:07.8154912Z             },
2026-06-15T15:10:07.8155116Z             {
2026-06-15T15:10:07.8155349Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T15:10:07.8155645Z               "line": 148
2026-06-15T15:10:07.8163381Z             },
2026-06-15T15:10:07.8163643Z             {
2026-06-15T15:10:07.8163929Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T15:10:07.8164258Z               "line": 169
2026-06-15T15:10:07.8164474Z             },
2026-06-15T15:10:07.8164687Z             {
2026-06-15T15:10:07.8164935Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T15:10:07.8165228Z               "line": 181
2026-06-15T15:10:07.8165442Z             },
2026-06-15T15:10:07.8165651Z             {
2026-06-15T15:10:07.8165909Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T15:10:07.8166210Z               "line": 202
2026-06-15T15:10:07.8166439Z             },
2026-06-15T15:10:07.8166644Z             {
2026-06-15T15:10:07.8166897Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.8167192Z               "line": 375
2026-06-15T15:10:07.8167412Z             },
2026-06-15T15:10:07.8167620Z             {
2026-06-15T15:10:07.8167851Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.8168133Z               "line": 407
2026-06-15T15:10:07.8168518Z             },
2026-06-15T15:10:07.8168719Z             {
2026-06-15T15:10:07.8169039Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8169330Z               "line": 8466
2026-06-15T15:10:07.8169545Z             }
2026-06-15T15:10:07.8169740Z           ]
2026-06-15T15:10:07.8169941Z         }
2026-06-15T15:10:07.8170141Z       }
2026-06-15T15:10:07.8170340Z     },
2026-06-15T15:10:07.8170526Z     {
2026-06-15T15:10:07.8170730Z       "id": "REQ-MESH-5",
2026-06-15T15:10:07.8172327Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-15T15:10:07.8173832Z       "requiredStages": [
2026-06-15T15:10:07.8174066Z         "impl",
2026-06-15T15:10:07.8174279Z         "unit"
2026-06-15T15:10:07.8174489Z       ],
2026-06-15T15:10:07.8174696Z       "stages": {
2026-06-15T15:10:07.8174909Z         "doc": {
2026-06-15T15:10:07.8175137Z           "complete": false,
2026-06-15T15:10:07.8175377Z           "evidence": []
2026-06-15T15:10:07.8175599Z         },
2026-06-15T15:10:07.8175807Z         "impl": {
2026-06-15T15:10:07.8176032Z           "complete": true,
2026-06-15T15:10:07.8176274Z           "evidence": [
2026-06-15T15:10:07.8176498Z             {
2026-06-15T15:10:07.8176747Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T15:10:07.8177061Z               "line": 61
2026-06-15T15:10:07.8177290Z             },
2026-06-15T15:10:07.8177490Z             {
2026-06-15T15:10:07.8177737Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T15:10:07.8178033Z               "line": 109
2026-06-15T15:10:07.8178266Z             },
2026-06-15T15:10:07.8178459Z             {
2026-06-15T15:10:07.8178712Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8179112Z               "line": 104
2026-06-15T15:10:07.8179351Z             },
2026-06-15T15:10:07.8179552Z             {
2026-06-15T15:10:07.8179790Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.8180081Z               "line": 105
2026-06-15T15:10:07.8180300Z             },
2026-06-15T15:10:07.8180501Z             {
2026-06-15T15:10:07.8180749Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8181052Z               "line": 85
2026-06-15T15:10:07.8181276Z             },
2026-06-15T15:10:07.8181477Z             {
2026-06-15T15:10:07.8181725Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8185688Z               "line": 250
2026-06-15T15:10:07.8185984Z             },
2026-06-15T15:10:07.8186193Z             {
2026-06-15T15:10:07.8186461Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8186791Z               "line": 314
2026-06-15T15:10:07.8187015Z             },
2026-06-15T15:10:07.8187235Z             {
2026-06-15T15:10:07.8187493Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8187798Z               "line": 715
2026-06-15T15:10:07.8188012Z             },
2026-06-15T15:10:07.8188217Z             {
2026-06-15T15:10:07.8188457Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.8188736Z               "line": 101
2026-06-15T15:10:07.8189024Z             },
2026-06-15T15:10:07.8189225Z             {
2026-06-15T15:10:07.8189478Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8189764Z               "line": 193
2026-06-15T15:10:07.8189992Z             }
2026-06-15T15:10:07.8190188Z           ]
2026-06-15T15:10:07.8190384Z         },
2026-06-15T15:10:07.8190579Z         "int": {
2026-06-15T15:10:07.8190798Z           "complete": false,
2026-06-15T15:10:07.8191232Z           "evidence": []
2026-06-15T15:10:07.8191451Z         },
2026-06-15T15:10:07.8191651Z         "unit": {
2026-06-15T15:10:07.8191874Z           "complete": true,
2026-06-15T15:10:07.8192114Z           "evidence": [
2026-06-15T15:10:07.8192324Z             {
2026-06-15T15:10:07.8192580Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8192881Z               "line": 957
2026-06-15T15:10:07.8193096Z             },
2026-06-15T15:10:07.8193306Z             {
2026-06-15T15:10:07.8193544Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T15:10:07.8193824Z               "line": 462
2026-06-15T15:10:07.8194275Z             }
2026-06-15T15:10:07.8194484Z           ]
2026-06-15T15:10:07.8194675Z         }
2026-06-15T15:10:07.8194862Z       }
2026-06-15T15:10:07.8195056Z     },
2026-06-15T15:10:07.8195248Z     {
2026-06-15T15:10:07.8195462Z       "id": "REQ-MESH-6",
2026-06-15T15:10:07.8196885Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-15T15:10:07.8198120Z       "requiredStages": [
2026-06-15T15:10:07.8198353Z         "impl",
2026-06-15T15:10:07.8198567Z         "unit"
2026-06-15T15:10:07.8198763Z       ],
2026-06-15T15:10:07.8199051Z       "stages": {
2026-06-15T15:10:07.8199262Z         "doc": {
2026-06-15T15:10:07.8199484Z           "complete": false,
2026-06-15T15:10:07.8199733Z           "evidence": []
2026-06-15T15:10:07.8199956Z         },
2026-06-15T15:10:07.8200142Z         "impl": {
2026-06-15T15:10:07.8200357Z           "complete": true,
2026-06-15T15:10:07.8200586Z           "evidence": [
2026-06-15T15:10:07.8200795Z             {
2026-06-15T15:10:07.8201034Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8201311Z               "line": 3743
2026-06-15T15:10:07.8201531Z             }
2026-06-15T15:10:07.8201735Z           ]
2026-06-15T15:10:07.8201932Z         },
2026-06-15T15:10:07.8202124Z         "int": {
2026-06-15T15:10:07.8202349Z           "complete": false,
2026-06-15T15:10:07.8202583Z           "evidence": []
2026-06-15T15:10:07.8202797Z         },
2026-06-15T15:10:07.8203003Z         "unit": {
2026-06-15T15:10:07.8203213Z           "complete": true,
2026-06-15T15:10:07.8203436Z           "evidence": [
2026-06-15T15:10:07.8203665Z             {
2026-06-15T15:10:07.8203895Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8204176Z               "line": 8999
2026-06-15T15:10:07.8204398Z             },
2026-06-15T15:10:07.8204592Z             {
2026-06-15T15:10:07.8204831Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8205097Z               "line": 9026
2026-06-15T15:10:07.8205320Z             },
2026-06-15T15:10:07.8205521Z             {
2026-06-15T15:10:07.8205737Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8206012Z               "line": 9050
2026-06-15T15:10:07.8206227Z             }
2026-06-15T15:10:07.8206428Z           ]
2026-06-15T15:10:07.8206623Z         }
2026-06-15T15:10:07.8206823Z       }
2026-06-15T15:10:07.8207010Z     },
2026-06-15T15:10:07.8207203Z     {
2026-06-15T15:10:07.8207417Z       "id": "REQ-MIGRATE-1",
2026-06-15T15:10:07.8207750Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-15T15:10:07.8208089Z       "requiredStages": [],
2026-06-15T15:10:07.8208323Z       "stages": {
2026-06-15T15:10:07.8208546Z         "doc": {
2026-06-15T15:10:07.8208756Z           "complete": false,
2026-06-15T15:10:07.8209074Z           "evidence": []
2026-06-15T15:10:07.8209296Z         },
2026-06-15T15:10:07.8209485Z         "impl": {
2026-06-15T15:10:07.8209694Z           "complete": false,
2026-06-15T15:10:07.8209932Z           "evidence": []
2026-06-15T15:10:07.8210269Z         },
2026-06-15T15:10:07.8210463Z         "int": {
2026-06-15T15:10:07.8210669Z           "complete": false,
2026-06-15T15:10:07.8210903Z           "evidence": []
2026-06-15T15:10:07.8211117Z         },
2026-06-15T15:10:07.8211313Z         "unit": {
2026-06-15T15:10:07.8211519Z           "complete": false,
2026-06-15T15:10:07.8211746Z           "evidence": []
2026-06-15T15:10:07.8211971Z         }
2026-06-15T15:10:07.8212163Z       }
2026-06-15T15:10:07.8212352Z     },
2026-06-15T15:10:07.8212543Z     {
2026-06-15T15:10:07.8212756Z       "id": "REQ-MSG-1",
2026-06-15T15:10:07.8213337Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-15T15:10:07.8214030Z       "requiredStages": [
2026-06-15T15:10:07.8214263Z         "impl",
2026-06-15T15:10:07.8214469Z         "unit",
2026-06-15T15:10:07.8214669Z         "int"
2026-06-15T15:10:07.8214877Z       ],
2026-06-15T15:10:07.8215073Z       "stages": {
2026-06-15T15:10:07.8215285Z         "doc": {
2026-06-15T15:10:07.8215495Z           "complete": false,
2026-06-15T15:10:07.8215730Z           "evidence": []
2026-06-15T15:10:07.8215948Z         },
2026-06-15T15:10:07.8216148Z         "impl": {
2026-06-15T15:10:07.8216363Z           "complete": true,
2026-06-15T15:10:07.8216597Z           "evidence": [
2026-06-15T15:10:07.8216811Z             {
2026-06-15T15:10:07.8217040Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.8217331Z               "line": 28
2026-06-15T15:10:07.8217541Z             },
2026-06-15T15:10:07.8217735Z             {
2026-06-15T15:10:07.8217883Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.8217996Z               "line": 94
2026-06-15T15:10:07.8218099Z             },
2026-06-15T15:10:07.8218205Z             {
2026-06-15T15:10:07.8218344Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.8218462Z               "line": 127
2026-06-15T15:10:07.8218563Z             },
2026-06-15T15:10:07.8218663Z             {
2026-06-15T15:10:07.8218805Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.8218921Z               "line": 149
2026-06-15T15:10:07.8219101Z             },
2026-06-15T15:10:07.8219207Z             {
2026-06-15T15:10:07.8219340Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.8219449Z               "line": 174
2026-06-15T15:10:07.8219550Z             },
2026-06-15T15:10:07.8219659Z             {
2026-06-15T15:10:07.8219799Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T15:10:07.8219903Z               "line": 18
2026-06-15T15:10:07.8220007Z             },
2026-06-15T15:10:07.8220114Z             {
2026-06-15T15:10:07.8220241Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T15:10:07.8220345Z               "line": 13
2026-06-15T15:10:07.8220454Z             },
2026-06-15T15:10:07.8220554Z             {
2026-06-15T15:10:07.8220690Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T15:10:07.8220800Z               "line": 62
2026-06-15T15:10:07.8220901Z             },
2026-06-15T15:10:07.8221005Z             {
2026-06-15T15:10:07.8221135Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T15:10:07.8221239Z               "line": 13
2026-06-15T15:10:07.8221339Z             }
2026-06-15T15:10:07.8221440Z           ]
2026-06-15T15:10:07.8221540Z         },
2026-06-15T15:10:07.8221644Z         "int": {
2026-06-15T15:10:07.8221759Z           "complete": true,
2026-06-15T15:10:07.8221868Z           "evidence": [
2026-06-15T15:10:07.8221963Z             {
2026-06-15T15:10:07.8222131Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T15:10:07.8222235Z               "line": 9
2026-06-15T15:10:07.8222336Z             },
2026-06-15T15:10:07.8222441Z             {
2026-06-15T15:10:07.8222603Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T15:10:07.8222826Z               "line": 56
2026-06-15T15:10:07.8222927Z             },
2026-06-15T15:10:07.8223033Z             {
2026-06-15T15:10:07.8223183Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T15:10:07.8223293Z               "line": 113
2026-06-15T15:10:07.8223389Z             }
2026-06-15T15:10:07.8223488Z           ]
2026-06-15T15:10:07.8223598Z         },
2026-06-15T15:10:07.8223699Z         "unit": {
2026-06-15T15:10:07.8223822Z           "complete": true,
2026-06-15T15:10:07.8223922Z           "evidence": [
2026-06-15T15:10:07.8224023Z             {
2026-06-15T15:10:07.8224165Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.8224385Z               "line": 203
2026-06-15T15:10:07.8224484Z             },
2026-06-15T15:10:07.8224590Z             {
2026-06-15T15:10:07.8224738Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.8224847Z               "line": 232
2026-06-15T15:10:07.8224949Z             },
2026-06-15T15:10:07.8225047Z             {
2026-06-15T15:10:07.8225191Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.8225306Z               "line": 277
2026-06-15T15:10:07.8225410Z             },
2026-06-15T15:10:07.8225509Z             {
2026-06-15T15:10:07.8225647Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.8225745Z               "line": 300
2026-06-15T15:10:07.8225840Z             },
2026-06-15T15:10:07.8225946Z             {
2026-06-15T15:10:07.8226088Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T15:10:07.8226198Z               "line": 325
2026-06-15T15:10:07.8226304Z             },
2026-06-15T15:10:07.8226403Z             {
2026-06-15T15:10:07.8226543Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T15:10:07.8226647Z               "line": 204
2026-06-15T15:10:07.8226756Z             },
2026-06-15T15:10:07.8226857Z             {
2026-06-15T15:10:07.8227004Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T15:10:07.8227123Z               "line": 237
2026-06-15T15:10:07.8227219Z             },
2026-06-15T15:10:07.8227328Z             {
2026-06-15T15:10:07.8227462Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T15:10:07.8227581Z               "line": 251
2026-06-15T15:10:07.8227686Z             },
2026-06-15T15:10:07.8227787Z             {
2026-06-15T15:10:07.8227943Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T15:10:07.8228043Z               "line": 263
2026-06-15T15:10:07.8228145Z             },
2026-06-15T15:10:07.8228248Z             {
2026-06-15T15:10:07.8228371Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T15:10:07.8228495Z               "line": 162
2026-06-15T15:10:07.8228598Z             },
2026-06-15T15:10:07.8228693Z             {
2026-06-15T15:10:07.8228818Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T15:10:07.8228932Z               "line": 242
2026-06-15T15:10:07.8229109Z             },
2026-06-15T15:10:07.8229209Z             {
2026-06-15T15:10:07.8229356Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T15:10:07.8229452Z               "line": 134
2026-06-15T15:10:07.8229557Z             },
2026-06-15T15:10:07.8229656Z             {
2026-06-15T15:10:07.8229791Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T15:10:07.8229914Z               "line": 153
2026-06-15T15:10:07.8230019Z             }
2026-06-15T15:10:07.8230125Z           ]
2026-06-15T15:10:07.8230219Z         }
2026-06-15T15:10:07.8230320Z       }
2026-06-15T15:10:07.8230420Z     },
2026-06-15T15:10:07.8230519Z     {
2026-06-15T15:10:07.8230620Z       "id": "REQ-MSG-2",
2026-06-15T15:10:07.8230919Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-15T15:10:07.8231043Z       "requiredStages": [
2026-06-15T15:10:07.8231146Z         "impl",
2026-06-15T15:10:07.8231255Z         "unit"
2026-06-15T15:10:07.8231346Z       ],
2026-06-15T15:10:07.8231457Z       "stages": {
2026-06-15T15:10:07.8231685Z         "doc": {
2026-06-15T15:10:07.8231790Z           "complete": false,
2026-06-15T15:10:07.8231909Z           "evidence": []
2026-06-15T15:10:07.8232014Z         },
2026-06-15T15:10:07.8232124Z         "impl": {
2026-06-15T15:10:07.8232242Z           "complete": true,
2026-06-15T15:10:07.8232357Z           "evidence": [
2026-06-15T15:10:07.8232453Z             {
2026-06-15T15:10:07.8232576Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8232696Z               "line": 11
2026-06-15T15:10:07.8232796Z             },
2026-06-15T15:10:07.8232896Z             {
2026-06-15T15:10:07.8233029Z               "path": "crates/spt/src/main.rs",
2026-06-15T15:10:07.8233245Z               "line": 8
2026-06-15T15:10:07.8233354Z             }
2026-06-15T15:10:07.8233453Z           ]
2026-06-15T15:10:07.8233555Z         },
2026-06-15T15:10:07.8233659Z         "int": {
2026-06-15T15:10:07.8233782Z           "complete": false,
2026-06-15T15:10:07.8233886Z           "evidence": []
2026-06-15T15:10:07.8233988Z         },
2026-06-15T15:10:07.8234096Z         "unit": {
2026-06-15T15:10:07.8234211Z           "complete": true,
2026-06-15T15:10:07.8234321Z           "evidence": [
2026-06-15T15:10:07.8234425Z             {
2026-06-15T15:10:07.8234560Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8234678Z               "line": 6321
2026-06-15T15:10:07.8234783Z             },
2026-06-15T15:10:07.8234889Z             {
2026-06-15T15:10:07.8235017Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8235121Z               "line": 6363
2026-06-15T15:10:07.8235223Z             },
2026-06-15T15:10:07.8235322Z             {
2026-06-15T15:10:07.8235446Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8235561Z               "line": 6412
2026-06-15T15:10:07.8235655Z             },
2026-06-15T15:10:07.8235760Z             {
2026-06-15T15:10:07.8235890Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8235993Z               "line": 6435
2026-06-15T15:10:07.8236107Z             },
2026-06-15T15:10:07.8236202Z             {
2026-06-15T15:10:07.8236339Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8236458Z               "line": 8221
2026-06-15T15:10:07.8236554Z             },
2026-06-15T15:10:07.8236658Z             {
2026-06-15T15:10:07.8236787Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8236902Z               "line": 8230
2026-06-15T15:10:07.8237001Z             },
2026-06-15T15:10:07.8237103Z             {
2026-06-15T15:10:07.8237231Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8237339Z               "line": 8244
2026-06-15T15:10:07.8237451Z             }
2026-06-15T15:10:07.8237550Z           ]
2026-06-15T15:10:07.8237650Z         }
2026-06-15T15:10:07.8237751Z       }
2026-06-15T15:10:07.8237855Z     },
2026-06-15T15:10:07.8237960Z     {
2026-06-15T15:10:07.8238076Z       "id": "REQ-MSG-3",
2026-06-15T15:10:07.8238489Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-15T15:10:07.8238604Z       "requiredStages": [
2026-06-15T15:10:07.8238715Z         "impl",
2026-06-15T15:10:07.8238808Z         "unit",
2026-06-15T15:10:07.8238907Z         "int"
2026-06-15T15:10:07.8239083Z       ],
2026-06-15T15:10:07.8239187Z       "stages": {
2026-06-15T15:10:07.8239287Z         "doc": {
2026-06-15T15:10:07.8239407Z           "complete": false,
2026-06-15T15:10:07.8239525Z           "evidence": []
2026-06-15T15:10:07.8239625Z         },
2026-06-15T15:10:07.8239731Z         "impl": {
2026-06-15T15:10:07.8239854Z           "complete": true,
2026-06-15T15:10:07.8239965Z           "evidence": [
2026-06-15T15:10:07.8240065Z             {
2026-06-15T15:10:07.8240216Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T15:10:07.8240322Z               "line": 19
2026-06-15T15:10:07.8240422Z             },
2026-06-15T15:10:07.8240526Z             {
2026-06-15T15:10:07.8240789Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T15:10:07.8240894Z               "line": 21
2026-06-15T15:10:07.8240990Z             },
2026-06-15T15:10:07.8241093Z             {
2026-06-15T15:10:07.8241234Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T15:10:07.8241347Z               "line": 48
2026-06-15T15:10:07.8241441Z             },
2026-06-15T15:10:07.8241555Z             {
2026-06-15T15:10:07.8241692Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T15:10:07.8241796Z               "line": 151
2026-06-15T15:10:07.8241902Z             }
2026-06-15T15:10:07.8242003Z           ]
2026-06-15T15:10:07.8242207Z         },
2026-06-15T15:10:07.8242302Z         "int": {
2026-06-15T15:10:07.8242420Z           "complete": true,
2026-06-15T15:10:07.8242532Z           "evidence": [
2026-06-15T15:10:07.8242640Z             {
2026-06-15T15:10:07.8242807Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T15:10:07.8242913Z               "line": 10
2026-06-15T15:10:07.8243018Z             },
2026-06-15T15:10:07.8243127Z             {
2026-06-15T15:10:07.8243294Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T15:10:07.8243398Z               "line": 56
2026-06-15T15:10:07.8243504Z             }
2026-06-15T15:10:07.8243604Z           ]
2026-06-15T15:10:07.8243708Z         },
2026-06-15T15:10:07.8243805Z         "unit": {
2026-06-15T15:10:07.8243923Z           "complete": true,
2026-06-15T15:10:07.8244037Z           "evidence": [
2026-06-15T15:10:07.8244143Z             {
2026-06-15T15:10:07.8244285Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T15:10:07.8244408Z               "line": 205
2026-06-15T15:10:07.8244514Z             },
2026-06-15T15:10:07.8244618Z             {
2026-06-15T15:10:07.8244762Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T15:10:07.8244881Z               "line": 224
2026-06-15T15:10:07.8244985Z             },
2026-06-15T15:10:07.8245086Z             {
2026-06-15T15:10:07.8245210Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T15:10:07.8245323Z               "line": 247
2026-06-15T15:10:07.8245425Z             }
2026-06-15T15:10:07.8245533Z           ]
2026-06-15T15:10:07.8245638Z         }
2026-06-15T15:10:07.8245735Z       }
2026-06-15T15:10:07.8245839Z     },
2026-06-15T15:10:07.8245939Z     {
2026-06-15T15:10:07.8246064Z       "id": "REQ-MSG-4",
2026-06-15T15:10:07.8246927Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-15T15:10:07.8247057Z       "requiredStages": [
2026-06-15T15:10:07.8247156Z         "impl",
2026-06-15T15:10:07.8247261Z         "unit",
2026-06-15T15:10:07.8247372Z         "int"
2026-06-15T15:10:07.8247471Z       ],
2026-06-15T15:10:07.8247585Z       "stages": {
2026-06-15T15:10:07.8247701Z         "doc": {
2026-06-15T15:10:07.8247819Z           "complete": false,
2026-06-15T15:10:07.8247934Z           "evidence": []
2026-06-15T15:10:07.8248030Z         },
2026-06-15T15:10:07.8248134Z         "impl": {
2026-06-15T15:10:07.8248243Z           "complete": true,
2026-06-15T15:10:07.8248354Z           "evidence": [
2026-06-15T15:10:07.8248453Z             {
2026-06-15T15:10:07.8248588Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T15:10:07.8248687Z               "line": 19
2026-06-15T15:10:07.8248792Z             },
2026-06-15T15:10:07.8248898Z             {
2026-06-15T15:10:07.8249092Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T15:10:07.8249213Z               "line": 46
2026-06-15T15:10:07.8249317Z             },
2026-06-15T15:10:07.8249416Z             {
2026-06-15T15:10:07.8249563Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8249667Z               "line": 407
2026-06-15T15:10:07.8249775Z             },
2026-06-15T15:10:07.8249991Z             {
2026-06-15T15:10:07.8250132Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8250253Z               "line": 2714
2026-06-15T15:10:07.8250357Z             }
2026-06-15T15:10:07.8250452Z           ]
2026-06-15T15:10:07.8250554Z         },
2026-06-15T15:10:07.8250672Z         "int": {
2026-06-15T15:10:07.8250767Z           "complete": true,
2026-06-15T15:10:07.8250873Z           "evidence": [
2026-06-15T15:10:07.8250968Z             {
2026-06-15T15:10:07.8251115Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T15:10:07.8251226Z               "line": 98
2026-06-15T15:10:07.8251325Z             },
2026-06-15T15:10:07.8251536Z             {
2026-06-15T15:10:07.8251678Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T15:10:07.8251794Z               "line": 128
2026-06-15T15:10:07.8251903Z             }
2026-06-15T15:10:07.8252006Z           ]
2026-06-15T15:10:07.8252115Z         },
2026-06-15T15:10:07.8252220Z         "unit": {
2026-06-15T15:10:07.8252346Z           "complete": true,
2026-06-15T15:10:07.8252447Z           "evidence": [
2026-06-15T15:10:07.8252558Z             {
2026-06-15T15:10:07.8252742Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T15:10:07.8252853Z               "line": 68
2026-06-15T15:10:07.8252962Z             },
2026-06-15T15:10:07.8253067Z             {
2026-06-15T15:10:07.8253206Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T15:10:07.8253314Z               "line": 79
2026-06-15T15:10:07.8253421Z             },
2026-06-15T15:10:07.8253525Z             {
2026-06-15T15:10:07.8253658Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T15:10:07.8253778Z               "line": 90
2026-06-15T15:10:07.8253883Z             },
2026-06-15T15:10:07.8253997Z             {
2026-06-15T15:10:07.8254149Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T15:10:07.8254269Z               "line": 151
2026-06-15T15:10:07.8254380Z             }
2026-06-15T15:10:07.8254488Z           ]
2026-06-15T15:10:07.8254593Z         }
2026-06-15T15:10:07.8254695Z       }
2026-06-15T15:10:07.8254803Z     },
2026-06-15T15:10:07.8254959Z     {
2026-06-15T15:10:07.8255075Z       "id": "REQ-MSG-5",
2026-06-15T15:10:07.8255883Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-15T15:10:07.8256004Z       "requiredStages": [
2026-06-15T15:10:07.8256113Z         "doc",
2026-06-15T15:10:07.8256227Z         "impl",
2026-06-15T15:10:07.8256395Z         "unit"
2026-06-15T15:10:07.8256503Z       ],
2026-06-15T15:10:07.8256610Z       "stages": {
2026-06-15T15:10:07.8256723Z         "doc": {
2026-06-15T15:10:07.8256828Z           "complete": true,
2026-06-15T15:10:07.8256944Z           "evidence": [
2026-06-15T15:10:07.8257047Z             {
2026-06-15T15:10:07.8257184Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.8257314Z               "line": 212
2026-06-15T15:10:07.8257421Z             }
2026-06-15T15:10:07.8257530Z           ]
2026-06-15T15:10:07.8257631Z         },
2026-06-15T15:10:07.8257736Z         "impl": {
2026-06-15T15:10:07.8257850Z           "complete": true,
2026-06-15T15:10:07.8257965Z           "evidence": [
2026-06-15T15:10:07.8258074Z             {
2026-06-15T15:10:07.8258213Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T15:10:07.8258332Z               "line": 60
2026-06-15T15:10:07.8258431Z             },
2026-06-15T15:10:07.8258537Z             {
2026-06-15T15:10:07.8258685Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.8258808Z               "line": 118
2026-06-15T15:10:07.8258910Z             },
2026-06-15T15:10:07.8259090Z             {
2026-06-15T15:10:07.8259234Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.8259338Z               "line": 127
2026-06-15T15:10:07.8259553Z             },
2026-06-15T15:10:07.8259647Z             {
2026-06-15T15:10:07.8259787Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.8259901Z               "line": 141
2026-06-15T15:10:07.8260004Z             },
2026-06-15T15:10:07.8260105Z             {
2026-06-15T15:10:07.8260237Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.8260350Z               "line": 170
2026-06-15T15:10:07.8260455Z             },
2026-06-15T15:10:07.8260561Z             {
2026-06-15T15:10:07.8260707Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8260832Z               "line": 2460
2026-06-15T15:10:07.8261036Z             }
2026-06-15T15:10:07.8261128Z           ]
2026-06-15T15:10:07.8261242Z         },
2026-06-15T15:10:07.8261375Z         "int": {
2026-06-15T15:10:07.8261494Z           "complete": true,
2026-06-15T15:10:07.8261609Z           "evidence": [
2026-06-15T15:10:07.8261710Z             {
2026-06-15T15:10:07.8261861Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T15:10:07.8261976Z               "line": 19
2026-06-15T15:10:07.8262082Z             }
2026-06-15T15:10:07.8262185Z           ]
2026-06-15T15:10:07.8262291Z         },
2026-06-15T15:10:07.8262402Z         "unit": {
2026-06-15T15:10:07.8262509Z           "complete": true,
2026-06-15T15:10:07.8262613Z           "evidence": [
2026-06-15T15:10:07.8262719Z             {
2026-06-15T15:10:07.8262860Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T15:10:07.8262964Z               "line": 192
2026-06-15T15:10:07.8263080Z             },
2026-06-15T15:10:07.8263174Z             {
2026-06-15T15:10:07.8263337Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T15:10:07.8263456Z               "line": 154
2026-06-15T15:10:07.8263560Z             },
2026-06-15T15:10:07.8263671Z             {
2026-06-15T15:10:07.8263789Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T15:10:07.8263898Z               "line": 122
2026-06-15T15:10:07.8264009Z             },
2026-06-15T15:10:07.8264109Z             {
2026-06-15T15:10:07.8264257Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.8264362Z               "line": 444
2026-06-15T15:10:07.8264462Z             },
2026-06-15T15:10:07.8264567Z             {
2026-06-15T15:10:07.8264714Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.8264834Z               "line": 493
2026-06-15T15:10:07.8264935Z             },
2026-06-15T15:10:07.8265043Z             {
2026-06-15T15:10:07.8265177Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.8265283Z               "line": 509
2026-06-15T15:10:07.8265395Z             },
2026-06-15T15:10:07.8265495Z             {
2026-06-15T15:10:07.8265639Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T15:10:07.8265748Z               "line": 528
2026-06-15T15:10:07.8265848Z             },
2026-06-15T15:10:07.8265949Z             {
2026-06-15T15:10:07.8266091Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8269412Z               "line": 6264
2026-06-15T15:10:07.8269540Z             }
2026-06-15T15:10:07.8269650Z           ]
2026-06-15T15:10:07.8269751Z         }
2026-06-15T15:10:07.8269845Z       }
2026-06-15T15:10:07.8269950Z     },
2026-06-15T15:10:07.8270051Z     {
2026-06-15T15:10:07.8270174Z       "id": "REQ-MSG-6",
2026-06-15T15:10:07.8271854Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-15T15:10:07.8271998Z       "requiredStages": [
2026-06-15T15:10:07.8272245Z         "doc",
2026-06-15T15:10:07.8272351Z         "impl",
2026-06-15T15:10:07.8272455Z         "unit"
2026-06-15T15:10:07.8272555Z       ],
2026-06-15T15:10:07.8272661Z       "stages": {
2026-06-15T15:10:07.8272764Z         "doc": {
2026-06-15T15:10:07.8272885Z           "complete": true,
2026-06-15T15:10:07.8272981Z           "evidence": [
2026-06-15T15:10:07.8273089Z             {
2026-06-15T15:10:07.8273217Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.8273322Z               "line": 215
2026-06-15T15:10:07.8273420Z             }
2026-06-15T15:10:07.8273524Z           ]
2026-06-15T15:10:07.8273630Z         },
2026-06-15T15:10:07.8273734Z         "impl": {
2026-06-15T15:10:07.8273978Z           "complete": true,
2026-06-15T15:10:07.8274092Z           "evidence": [
2026-06-15T15:10:07.8274183Z             {
2026-06-15T15:10:07.8274354Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8274468Z               "line": 177
2026-06-15T15:10:07.8274574Z             },
2026-06-15T15:10:07.8274679Z             {
2026-06-15T15:10:07.8274841Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8274960Z               "line": 422
2026-06-15T15:10:07.8275065Z             },
2026-06-15T15:10:07.8275171Z             {
2026-06-15T15:10:07.8275327Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8275447Z               "line": 445
2026-06-15T15:10:07.8275547Z             },
2026-06-15T15:10:07.8275651Z             {
2026-06-15T15:10:07.8275795Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T15:10:07.8275909Z               "line": 89
2026-06-15T15:10:07.8276022Z             },
2026-06-15T15:10:07.8276127Z             {
2026-06-15T15:10:07.8276275Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8276384Z               "line": 155
2026-06-15T15:10:07.8276495Z             }
2026-06-15T15:10:07.8276599Z           ]
2026-06-15T15:10:07.8276708Z         },
2026-06-15T15:10:07.8276805Z         "int": {
2026-06-15T15:10:07.8276914Z           "complete": false,
2026-06-15T15:10:07.8277023Z           "evidence": []
2026-06-15T15:10:07.8277124Z         },
2026-06-15T15:10:07.8277233Z         "unit": {
2026-06-15T15:10:07.8277347Z           "complete": true,
2026-06-15T15:10:07.8277458Z           "evidence": [
2026-06-15T15:10:07.8277567Z             {
2026-06-15T15:10:07.8277726Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8277844Z               "line": 1639
2026-06-15T15:10:07.8277944Z             },
2026-06-15T15:10:07.8278055Z             {
2026-06-15T15:10:07.8278196Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T15:10:07.8278314Z               "line": 219
2026-06-15T15:10:07.8278410Z             }
2026-06-15T15:10:07.8278513Z           ]
2026-06-15T15:10:07.8278622Z         }
2026-06-15T15:10:07.8278722Z       }
2026-06-15T15:10:07.8278832Z     },
2026-06-15T15:10:07.8278936Z     {
2026-06-15T15:10:07.8279138Z       "id": "REQ-MSG-ENVELOPE",
2026-06-15T15:10:07.8282897Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-15T15:10:07.8283150Z       "requiredStages": [
2026-06-15T15:10:07.8283268Z         "doc",
2026-06-15T15:10:07.8283368Z         "impl",
2026-06-15T15:10:07.8283470Z         "unit",
2026-06-15T15:10:07.8283574Z         "int"
2026-06-15T15:10:07.8283667Z       ],
2026-06-15T15:10:07.8283777Z       "stages": {
2026-06-15T15:10:07.8283877Z         "doc": {
2026-06-15T15:10:07.8283999Z           "complete": true,
2026-06-15T15:10:07.8284214Z           "evidence": [
2026-06-15T15:10:07.8284318Z             {
2026-06-15T15:10:07.8284581Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-15T15:10:07.8284690Z               "line": 47
2026-06-15T15:10:07.8284791Z             }
2026-06-15T15:10:07.8284901Z           ]
2026-06-15T15:10:07.8285000Z         },
2026-06-15T15:10:07.8285101Z         "impl": {
2026-06-15T15:10:07.8285224Z           "complete": true,
2026-06-15T15:10:07.8285329Z           "evidence": [
2026-06-15T15:10:07.8285431Z             {
2026-06-15T15:10:07.8285568Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T15:10:07.8285672Z               "line": 20
2026-06-15T15:10:07.8285779Z             },
2026-06-15T15:10:07.8285872Z             {
2026-06-15T15:10:07.8286007Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T15:10:07.8286117Z               "line": 33
2026-06-15T15:10:07.8286221Z             },
2026-06-15T15:10:07.8286337Z             {
2026-06-15T15:10:07.8286474Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T15:10:07.8286573Z               "line": 47
2026-06-15T15:10:07.8286668Z             },
2026-06-15T15:10:07.8286764Z             {
2026-06-15T15:10:07.8297466Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T15:10:07.8297620Z               "line": 58
2026-06-15T15:10:07.8297729Z             },
2026-06-15T15:10:07.8297828Z             {
2026-06-15T15:10:07.8297972Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T15:10:07.8298086Z               "line": 14
2026-06-15T15:10:07.8298187Z             },
2026-06-15T15:10:07.8298282Z             {
2026-06-15T15:10:07.8298415Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T15:10:07.8298516Z               "line": 27
2026-06-15T15:10:07.8298616Z             },
2026-06-15T15:10:07.8298720Z             {
2026-06-15T15:10:07.8298860Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T15:10:07.8299073Z               "line": 40
2026-06-15T15:10:07.8299180Z             },
2026-06-15T15:10:07.8299278Z             {
2026-06-15T15:10:07.8299425Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.8299535Z               "line": 92
2026-06-15T15:10:07.8299633Z             },
2026-06-15T15:10:07.8299727Z             {
2026-06-15T15:10:07.8299886Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.8299995Z               "line": 143
2026-06-15T15:10:07.8300096Z             },
2026-06-15T15:10:07.8300196Z             {
2026-06-15T15:10:07.8300338Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.8300459Z               "line": 216
2026-06-15T15:10:07.8300558Z             },
2026-06-15T15:10:07.8300663Z             {
2026-06-15T15:10:07.8300807Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8300911Z               "line": 408
2026-06-15T15:10:07.8301015Z             },
2026-06-15T15:10:07.8301117Z             {
2026-06-15T15:10:07.8301268Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T15:10:07.8301383Z               "line": 78
2026-06-15T15:10:07.8301479Z             },
2026-06-15T15:10:07.8301588Z             {
2026-06-15T15:10:07.8301708Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8301826Z               "line": 2715
2026-06-15T15:10:07.8302094Z             }
2026-06-15T15:10:07.8302203Z           ]
2026-06-15T15:10:07.8302311Z         },
2026-06-15T15:10:07.8302412Z         "int": {
2026-06-15T15:10:07.8302529Z           "complete": true,
2026-06-15T15:10:07.8302628Z           "evidence": [
2026-06-15T15:10:07.8302734Z             {
2026-06-15T15:10:07.8302900Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-15T15:10:07.8303011Z               "line": 15
2026-06-15T15:10:07.8303116Z             }
2026-06-15T15:10:07.8303220Z           ]
2026-06-15T15:10:07.8303326Z         },
2026-06-15T15:10:07.8303426Z         "unit": {
2026-06-15T15:10:07.8303544Z           "complete": true,
2026-06-15T15:10:07.8303754Z           "evidence": [
2026-06-15T15:10:07.8303859Z             {
2026-06-15T15:10:07.8304008Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T15:10:07.8304111Z               "line": 102
2026-06-15T15:10:07.8304216Z             },
2026-06-15T15:10:07.8304318Z             {
2026-06-15T15:10:07.8304469Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T15:10:07.8304570Z               "line": 137
2026-06-15T15:10:07.8304675Z             },
2026-06-15T15:10:07.8304778Z             {
2026-06-15T15:10:07.8304902Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T15:10:07.8305007Z               "line": 98
2026-06-15T15:10:07.8305105Z             },
2026-06-15T15:10:07.8305200Z             {
2026-06-15T15:10:07.8305325Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T15:10:07.8305438Z               "line": 106
2026-06-15T15:10:07.8305543Z             },
2026-06-15T15:10:07.8305645Z             {
2026-06-15T15:10:07.8305786Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T15:10:07.8305897Z               "line": 113
2026-06-15T15:10:07.8306011Z             },
2026-06-15T15:10:07.8306110Z             {
2026-06-15T15:10:07.8306255Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T15:10:07.8306354Z               "line": 122
2026-06-15T15:10:07.8306454Z             }
2026-06-15T15:10:07.8306565Z           ]
2026-06-15T15:10:07.8306669Z         }
2026-06-15T15:10:07.8306774Z       }
2026-06-15T15:10:07.8306870Z     },
2026-06-15T15:10:07.8306969Z     {
2026-06-15T15:10:07.8307084Z       "id": "REQ-NET-1",
2026-06-15T15:10:07.8307289Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-15T15:10:07.8307408Z       "requiredStages": [
2026-06-15T15:10:07.8307509Z         "impl",
2026-06-15T15:10:07.8307613Z         "unit",
2026-06-15T15:10:07.8307717Z         "int"
2026-06-15T15:10:07.8307817Z       ],
2026-06-15T15:10:07.8307928Z       "stages": {
2026-06-15T15:10:07.8308031Z         "doc": {
2026-06-15T15:10:07.8308156Z           "complete": false,
2026-06-15T15:10:07.8308266Z           "evidence": []
2026-06-15T15:10:07.8308365Z         },
2026-06-15T15:10:07.8308471Z         "impl": {
2026-06-15T15:10:07.8308590Z           "complete": true,
2026-06-15T15:10:07.8308699Z           "evidence": [
2026-06-15T15:10:07.8308805Z             {
2026-06-15T15:10:07.8309042Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.8309148Z               "line": 54
2026-06-15T15:10:07.8309257Z             },
2026-06-15T15:10:07.8309357Z             {
2026-06-15T15:10:07.8309542Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.8309658Z               "line": 594
2026-06-15T15:10:07.8309759Z             },
2026-06-15T15:10:07.8309867Z             {
2026-06-15T15:10:07.8310009Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T15:10:07.8310119Z               "line": 130
2026-06-15T15:10:07.8310212Z             },
2026-06-15T15:10:07.8310326Z             {
2026-06-15T15:10:07.8310476Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8310589Z               "line": 97
2026-06-15T15:10:07.8310689Z             },
2026-06-15T15:10:07.8310794Z             {
2026-06-15T15:10:07.8310936Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8311152Z               "line": 159
2026-06-15T15:10:07.8311256Z             },
2026-06-15T15:10:07.8311362Z             {
2026-06-15T15:10:07.8311509Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8311614Z               "line": 175
2026-06-15T15:10:07.8311719Z             },
2026-06-15T15:10:07.8311828Z             {
2026-06-15T15:10:07.8311963Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8312071Z               "line": 190
2026-06-15T15:10:07.8312176Z             },
2026-06-15T15:10:07.8312278Z             {
2026-06-15T15:10:07.8312419Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8312626Z               "line": 271
2026-06-15T15:10:07.8312720Z             },
2026-06-15T15:10:07.8312815Z             {
2026-06-15T15:10:07.8312967Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8313079Z               "line": 306
2026-06-15T15:10:07.8313188Z             },
2026-06-15T15:10:07.8313294Z             {
2026-06-15T15:10:07.8313441Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8313551Z               "line": 312
2026-06-15T15:10:07.8313657Z             },
2026-06-15T15:10:07.8313746Z             {
2026-06-15T15:10:07.8313886Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8313990Z               "line": 318
2026-06-15T15:10:07.8314085Z             },
2026-06-15T15:10:07.8314186Z             {
2026-06-15T15:10:07.8314333Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8314447Z               "line": 334
2026-06-15T15:10:07.8314558Z             },
2026-06-15T15:10:07.8314658Z             {
2026-06-15T15:10:07.8314801Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8314916Z               "line": 354
2026-06-15T15:10:07.8315019Z             },
2026-06-15T15:10:07.8315116Z             {
2026-06-15T15:10:07.8315264Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T15:10:07.8315376Z               "line": 35
2026-06-15T15:10:07.8315481Z             },
2026-06-15T15:10:07.8315576Z             {
2026-06-15T15:10:07.8315712Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T15:10:07.8315818Z               "line": 85
2026-06-15T15:10:07.8315919Z             },
2026-06-15T15:10:07.8316022Z             {
2026-06-15T15:10:07.8316157Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.8316276Z               "line": 138
2026-06-15T15:10:07.8316370Z             },
2026-06-15T15:10:07.8316471Z             {
2026-06-15T15:10:07.8316605Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8316763Z               "line": 2557
2026-06-15T15:10:07.8316876Z             },
2026-06-15T15:10:07.8316976Z             {
2026-06-15T15:10:07.8317115Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.8317224Z               "line": 17
2026-06-15T15:10:07.8317339Z             }
2026-06-15T15:10:07.8317435Z           ]
2026-06-15T15:10:07.8317544Z         },
2026-06-15T15:10:07.8317648Z         "int": {
2026-06-15T15:10:07.8317759Z           "complete": true,
2026-06-15T15:10:07.8317873Z           "evidence": [
2026-06-15T15:10:07.8317973Z             {
2026-06-15T15:10:07.8318136Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T15:10:07.8318239Z               "line": 341
2026-06-15T15:10:07.8318358Z             },
2026-06-15T15:10:07.8318449Z             {
2026-06-15T15:10:07.8318591Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8318702Z               "line": 606
2026-06-15T15:10:07.8318807Z             },
2026-06-15T15:10:07.8318911Z             {
2026-06-15T15:10:07.8319121Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8319225Z               "line": 879
2026-06-15T15:10:07.8319332Z             }
2026-06-15T15:10:07.8319445Z           ]
2026-06-15T15:10:07.8319554Z         },
2026-06-15T15:10:07.8319765Z         "unit": {
2026-06-15T15:10:07.8319884Z           "complete": true,
2026-06-15T15:10:07.8319990Z           "evidence": [
2026-06-15T15:10:07.8320093Z             {
2026-06-15T15:10:07.8320246Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.8320357Z               "line": 651
2026-06-15T15:10:07.8320460Z             },
2026-06-15T15:10:07.8320559Z             {
2026-06-15T15:10:07.8320712Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.8320815Z               "line": 686
2026-06-15T15:10:07.8320925Z             },
2026-06-15T15:10:07.8321026Z             {
2026-06-15T15:10:07.8321302Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T15:10:07.8321411Z               "line": 936
2026-06-15T15:10:07.8321515Z             },
2026-06-15T15:10:07.8321617Z             {
2026-06-15T15:10:07.8321763Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T15:10:07.8321874Z               "line": 201
2026-06-15T15:10:07.8321988Z             },
2026-06-15T15:10:07.8322088Z             {
2026-06-15T15:10:07.8322237Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8322346Z               "line": 442
2026-06-15T15:10:07.8322465Z             },
2026-06-15T15:10:07.8322562Z             {
2026-06-15T15:10:07.8322703Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8322814Z               "line": 456
2026-06-15T15:10:07.8322914Z             },
2026-06-15T15:10:07.8323023Z             {
2026-06-15T15:10:07.8323172Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8323294Z               "line": 475
2026-06-15T15:10:07.8323394Z             },
2026-06-15T15:10:07.8323494Z             {
2026-06-15T15:10:07.8323644Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T15:10:07.8323753Z               "line": 120
2026-06-15T15:10:07.8323859Z             },
2026-06-15T15:10:07.8323949Z             {
2026-06-15T15:10:07.8324097Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T15:10:07.8324207Z               "line": 163
2026-06-15T15:10:07.8324311Z             },
2026-06-15T15:10:07.8324412Z             {
2026-06-15T15:10:07.8324555Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T15:10:07.8324664Z               "line": 530
2026-06-15T15:10:07.8324765Z             },
2026-06-15T15:10:07.8324869Z             {
2026-06-15T15:10:07.8325012Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.8325109Z               "line": 616
2026-06-15T15:10:07.8325218Z             },
2026-06-15T15:10:07.8325318Z             {
2026-06-15T15:10:07.8325462Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.8325565Z               "line": 1006
2026-06-15T15:10:07.8325700Z             }
2026-06-15T15:10:07.8325800Z           ]
2026-06-15T15:10:07.8325899Z         }
2026-06-15T15:10:07.8326008Z       }
2026-06-15T15:10:07.8326108Z     },
2026-06-15T15:10:07.8326221Z     {
2026-06-15T15:10:07.8326330Z       "id": "REQ-NET-2",
2026-06-15T15:10:07.8326550Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-15T15:10:07.8326668Z       "requiredStages": [
2026-06-15T15:10:07.8326774Z         "impl"
2026-06-15T15:10:07.8326869Z       ],
2026-06-15T15:10:07.8326974Z       "stages": {
2026-06-15T15:10:07.8327074Z         "doc": {
2026-06-15T15:10:07.8327188Z           "complete": false,
2026-06-15T15:10:07.8327298Z           "evidence": []
2026-06-15T15:10:07.8327408Z         },
2026-06-15T15:10:07.8327513Z         "impl": {
2026-06-15T15:10:07.8327627Z           "complete": true,
2026-06-15T15:10:07.8327742Z           "evidence": [
2026-06-15T15:10:07.8327842Z             {
2026-06-15T15:10:07.8327991Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T15:10:07.8328104Z               "line": 57
2026-06-15T15:10:07.8328208Z             },
2026-06-15T15:10:07.8328315Z             {
2026-06-15T15:10:07.8328563Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8328658Z               "line": 71
2026-06-15T15:10:07.8328766Z             },
2026-06-15T15:10:07.8328870Z             {
2026-06-15T15:10:07.8329081Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8329185Z               "line": 81
2026-06-15T15:10:07.8329291Z             },
2026-06-15T15:10:07.8329391Z             {
2026-06-15T15:10:07.8329538Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8329653Z               "line": 159
2026-06-15T15:10:07.8329753Z             },
2026-06-15T15:10:07.8329848Z             {
2026-06-15T15:10:07.8330105Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8330207Z               "line": 175
2026-06-15T15:10:07.8330320Z             },
2026-06-15T15:10:07.8330420Z             {
2026-06-15T15:10:07.8330564Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T15:10:07.8330673Z               "line": 190
2026-06-15T15:10:07.8330793Z             }
2026-06-15T15:10:07.8330894Z           ]
2026-06-15T15:10:07.8330997Z         },
2026-06-15T15:10:07.8331106Z         "int": {
2026-06-15T15:10:07.8331215Z           "complete": false,
2026-06-15T15:10:07.8331328Z           "evidence": []
2026-06-15T15:10:07.8331423Z         },
2026-06-15T15:10:07.8331533Z         "unit": {
2026-06-15T15:10:07.8331652Z           "complete": true,
2026-06-15T15:10:07.8331752Z           "evidence": [
2026-06-15T15:10:07.8331858Z             {
2026-06-15T15:10:07.8332004Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T15:10:07.8332120Z               "line": 402
2026-06-15T15:10:07.8332215Z             }
2026-06-15T15:10:07.8332324Z           ]
2026-06-15T15:10:07.8332420Z         }
2026-06-15T15:10:07.8332525Z       }
2026-06-15T15:10:07.8332629Z     },
2026-06-15T15:10:07.8332734Z     {
2026-06-15T15:10:07.8332854Z       "id": "REQ-NET-3",
2026-06-15T15:10:07.8333064Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-15T15:10:07.8333188Z       "requiredStages": [
2026-06-15T15:10:07.8333301Z         "impl",
2026-06-15T15:10:07.8333408Z         "unit"
2026-06-15T15:10:07.8333512Z       ],
2026-06-15T15:10:07.8333616Z       "stages": {
2026-06-15T15:10:07.8333713Z         "doc": {
2026-06-15T15:10:07.8333831Z           "complete": false,
2026-06-15T15:10:07.8333940Z           "evidence": []
2026-06-15T15:10:07.8334049Z         },
2026-06-15T15:10:07.8334153Z         "impl": {
2026-06-15T15:10:07.8334271Z           "complete": true,
2026-06-15T15:10:07.8334376Z           "evidence": [
2026-06-15T15:10:07.8334482Z             {
2026-06-15T15:10:07.8334628Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.8334735Z               "line": 39
2026-06-15T15:10:07.8334830Z             },
2026-06-15T15:10:07.8334938Z             {
2026-06-15T15:10:07.8335077Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.8335186Z               "line": 182
2026-06-15T15:10:07.8335292Z             },
2026-06-15T15:10:07.8335383Z             {
2026-06-15T15:10:07.8335525Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T15:10:07.8335621Z               "line": 333
2026-06-15T15:10:07.8335721Z             },
2026-06-15T15:10:07.8335825Z             {
2026-06-15T15:10:07.8335965Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T15:10:07.8336078Z               "line": 36
2026-06-15T15:10:07.8336178Z             },
2026-06-15T15:10:07.8336289Z             {
2026-06-15T15:10:07.8336450Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8336558Z               "line": 158
2026-06-15T15:10:07.8336678Z             },
2026-06-15T15:10:07.8336781Z             {
2026-06-15T15:10:07.8336928Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8337039Z               "line": 212
2026-06-15T15:10:07.8337143Z             },
2026-06-15T15:10:07.8337258Z             {
2026-06-15T15:10:07.8337519Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8337639Z               "line": 233
2026-06-15T15:10:07.8337734Z             },
2026-06-15T15:10:07.8337834Z             {
2026-06-15T15:10:07.8337987Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8338096Z               "line": 291
2026-06-15T15:10:07.8338192Z             },
2026-06-15T15:10:07.8338292Z             {
2026-06-15T15:10:07.8338445Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8338546Z               "line": 310
2026-06-15T15:10:07.8338650Z             },
2026-06-15T15:10:07.8338750Z             {
2026-06-15T15:10:07.8339031Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8339133Z               "line": 348
2026-06-15T15:10:07.8339228Z             },
2026-06-15T15:10:07.8339331Z             {
2026-06-15T15:10:07.8339478Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8339594Z               "line": 393
2026-06-15T15:10:07.8339702Z             },
2026-06-15T15:10:07.8339798Z             {
2026-06-15T15:10:07.8339942Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8340045Z               "line": 406
2026-06-15T15:10:07.8340152Z             },
2026-06-15T15:10:07.8340256Z             {
2026-06-15T15:10:07.8340418Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T15:10:07.8340523Z               "line": 29
2026-06-15T15:10:07.8340623Z             },
2026-06-15T15:10:07.8340737Z             {
2026-06-15T15:10:07.8340871Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T15:10:07.8340990Z               "line": 72
2026-06-15T15:10:07.8341087Z             },
2026-06-15T15:10:07.8341200Z             {
2026-06-15T15:10:07.8341348Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T15:10:07.8341444Z               "line": 123
2026-06-15T15:10:07.8341557Z             }
2026-06-15T15:10:07.8341661Z           ]
2026-06-15T15:10:07.8341761Z         },
2026-06-15T15:10:07.8341869Z         "int": {
2026-06-15T15:10:07.8341988Z           "complete": false,
2026-06-15T15:10:07.8342108Z           "evidence": []
2026-06-15T15:10:07.8342203Z         },
2026-06-15T15:10:07.8342312Z         "unit": {
2026-06-15T15:10:07.8342423Z           "complete": true,
2026-06-15T15:10:07.8342537Z           "evidence": [
2026-06-15T15:10:07.8342636Z             {
2026-06-15T15:10:07.8342775Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T15:10:07.8342884Z               "line": 223
2026-06-15T15:10:07.8342985Z             },
2026-06-15T15:10:07.8343090Z             {
2026-06-15T15:10:07.8343241Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T15:10:07.8343347Z               "line": 351
2026-06-15T15:10:07.8343452Z             },
2026-06-15T15:10:07.8343551Z             {
2026-06-15T15:10:07.8343691Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T15:10:07.8343799Z               "line": 504
2026-06-15T15:10:07.8343905Z             },
2026-06-15T15:10:07.8344006Z             {
2026-06-15T15:10:07.8344153Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T15:10:07.8344254Z               "line": 93
2026-06-15T15:10:07.8344359Z             },
2026-06-15T15:10:07.8344466Z             {
2026-06-15T15:10:07.8344605Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T15:10:07.8344727Z               "line": 142
2026-06-15T15:10:07.8344826Z             },
2026-06-15T15:10:07.8344927Z             {
2026-06-15T15:10:07.8345075Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T15:10:07.8345179Z               "line": 315
2026-06-15T15:10:07.8345295Z             },
2026-06-15T15:10:07.8345395Z             {
2026-06-15T15:10:07.8345547Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T15:10:07.8345652Z               "line": 355
2026-06-15T15:10:07.8345756Z             },
2026-06-15T15:10:07.8345861Z             {
2026-06-15T15:10:07.8346104Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T15:10:07.8346225Z               "line": 494
2026-06-15T15:10:07.8346328Z             }
2026-06-15T15:10:07.8346433Z           ]
2026-06-15T15:10:07.8346539Z         }
2026-06-15T15:10:07.8346648Z       }
2026-06-15T15:10:07.8346753Z     },
2026-06-15T15:10:07.8346849Z     {
2026-06-15T15:10:07.8346967Z       "id": "REQ-NODE-IDENTITY",
2026-06-15T15:10:07.8347229Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-15T15:10:07.8347345Z       "requiredStages": [
2026-06-15T15:10:07.8347450Z         "impl",
2026-06-15T15:10:07.8347655Z         "unit"
2026-06-15T15:10:07.8347755Z       ],
2026-06-15T15:10:07.8347861Z       "stages": {
2026-06-15T15:10:07.8347965Z         "doc": {
2026-06-15T15:10:07.8348079Z           "complete": false,
2026-06-15T15:10:07.8348190Z           "evidence": []
2026-06-15T15:10:07.8348285Z         },
2026-06-15T15:10:07.8348394Z         "impl": {
2026-06-15T15:10:07.8348519Z           "complete": true,
2026-06-15T15:10:07.8348623Z           "evidence": [
2026-06-15T15:10:07.8348728Z             {
2026-06-15T15:10:07.8348885Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T15:10:07.8349048Z               "line": 60
2026-06-15T15:10:07.8349149Z             },
2026-06-15T15:10:07.8349248Z             {
2026-06-15T15:10:07.8349411Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T15:10:07.8349505Z               "line": 68
2026-06-15T15:10:07.8349610Z             },
2026-06-15T15:10:07.8349707Z             {
2026-06-15T15:10:07.8349858Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T15:10:07.8349971Z               "line": 86
2026-06-15T15:10:07.8350077Z             },
2026-06-15T15:10:07.8350182Z             {
2026-06-15T15:10:07.8350324Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T15:10:07.8350440Z               "line": 120
2026-06-15T15:10:07.8350544Z             },
2026-06-15T15:10:07.8350654Z             {
2026-06-15T15:10:07.8350797Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T15:10:07.8350901Z               "line": 127
2026-06-15T15:10:07.8351007Z             },
2026-06-15T15:10:07.8351112Z             {
2026-06-15T15:10:07.8351259Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T15:10:07.8351365Z               "line": 143
2026-06-15T15:10:07.8351469Z             },
2026-06-15T15:10:07.8351574Z             {
2026-06-15T15:10:07.8351717Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T15:10:07.8351836Z               "line": 16
2026-06-15T15:10:07.8351942Z             }
2026-06-15T15:10:07.8352051Z           ]
2026-06-15T15:10:07.8352146Z         },
2026-06-15T15:10:07.8352254Z         "int": {
2026-06-15T15:10:07.8352369Z           "complete": false,
2026-06-15T15:10:07.8352486Z           "evidence": []
2026-06-15T15:10:07.8352586Z         },
2026-06-15T15:10:07.8352692Z         "unit": {
2026-06-15T15:10:07.8352819Z           "complete": true,
2026-06-15T15:10:07.8352920Z           "evidence": [
2026-06-15T15:10:07.8353030Z             {
2026-06-15T15:10:07.8353177Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T15:10:07.8353297Z               "line": 199
2026-06-15T15:10:07.8353397Z             },
2026-06-15T15:10:07.8353501Z             {
2026-06-15T15:10:07.8353645Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T15:10:07.8353750Z               "line": 218
2026-06-15T15:10:07.8353855Z             },
2026-06-15T15:10:07.8353955Z             {
2026-06-15T15:10:07.8354102Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T15:10:07.8354228Z               "line": 234
2026-06-15T15:10:07.8354332Z             },
2026-06-15T15:10:07.8354441Z             {
2026-06-15T15:10:07.8354575Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T15:10:07.8354684Z               "line": 256
2026-06-15T15:10:07.8354790Z             },
2026-06-15T15:10:07.8355008Z             {
2026-06-15T15:10:07.8355146Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T15:10:07.8355264Z               "line": 124
2026-06-15T15:10:07.8355362Z             },
2026-06-15T15:10:07.8355468Z             {
2026-06-15T15:10:07.8355612Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T15:10:07.8355715Z               "line": 140
2026-06-15T15:10:07.8355821Z             },
2026-06-15T15:10:07.8355926Z             {
2026-06-15T15:10:07.8356054Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T15:10:07.8356174Z               "line": 155
2026-06-15T15:10:07.8356274Z             }
2026-06-15T15:10:07.8356489Z           ]
2026-06-15T15:10:07.8356603Z         }
2026-06-15T15:10:07.8356703Z       }
2026-06-15T15:10:07.8356804Z     },
2026-06-15T15:10:07.8356907Z     {
2026-06-15T15:10:07.8357037Z       "id": "REQ-NOTIF-1",
2026-06-15T15:10:07.8357438Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-15T15:10:07.8357570Z       "requiredStages": [
2026-06-15T15:10:07.8357674Z         "impl",
2026-06-15T15:10:07.8357779Z         "unit",
2026-06-15T15:10:07.8357887Z         "int"
2026-06-15T15:10:07.8357991Z       ],
2026-06-15T15:10:07.8358092Z       "stages": {
2026-06-15T15:10:07.8358197Z         "doc": {
2026-06-15T15:10:07.8358315Z           "complete": false,
2026-06-15T15:10:07.8358431Z           "evidence": []
2026-06-15T15:10:07.8358535Z         },
2026-06-15T15:10:07.8358644Z         "impl": {
2026-06-15T15:10:07.8358760Z           "complete": true,
2026-06-15T15:10:07.8358878Z           "evidence": [
2026-06-15T15:10:07.8359051Z             {
2026-06-15T15:10:07.8359207Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.8359332Z               "line": 514
2026-06-15T15:10:07.8359436Z             },
2026-06-15T15:10:07.8359536Z             {
2026-06-15T15:10:07.8359681Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8359793Z               "line": 30
2026-06-15T15:10:07.8359899Z             },
2026-06-15T15:10:07.8360005Z             {
2026-06-15T15:10:07.8360152Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8360258Z               "line": 69
2026-06-15T15:10:07.8360358Z             },
2026-06-15T15:10:07.8360456Z             {
2026-06-15T15:10:07.8360603Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8360710Z               "line": 93
2026-06-15T15:10:07.8360813Z             },
2026-06-15T15:10:07.8364424Z             {
2026-06-15T15:10:07.8364610Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8364749Z               "line": 107
2026-06-15T15:10:07.8364854Z             },
2026-06-15T15:10:07.8364959Z             {
2026-06-15T15:10:07.8365112Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8365235Z               "line": 142
2026-06-15T15:10:07.8365345Z             },
2026-06-15T15:10:07.8365455Z             {
2026-06-15T15:10:07.8365601Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8365715Z               "line": 187
2026-06-15T15:10:07.8365819Z             },
2026-06-15T15:10:07.8365923Z             {
2026-06-15T15:10:07.8366066Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8366181Z               "line": 258
2026-06-15T15:10:07.8366280Z             },
2026-06-15T15:10:07.8366386Z             {
2026-06-15T15:10:07.8366529Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8366643Z               "line": 372
2026-06-15T15:10:07.8366749Z             },
2026-06-15T15:10:07.8366867Z             {
2026-06-15T15:10:07.8367006Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8367106Z               "line": 479
2026-06-15T15:10:07.8367206Z             },
2026-06-15T15:10:07.8367311Z             {
2026-06-15T15:10:07.8367468Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T15:10:07.8367726Z               "line": 24
2026-06-15T15:10:07.8367830Z             },
2026-06-15T15:10:07.8367926Z             {
2026-06-15T15:10:07.8368074Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T15:10:07.8368192Z               "line": 34
2026-06-15T15:10:07.8368292Z             },
2026-06-15T15:10:07.8368400Z             {
2026-06-15T15:10:07.8368551Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T15:10:07.8368662Z               "line": 60
2026-06-15T15:10:07.8368771Z             },
2026-06-15T15:10:07.8368871Z             {
2026-06-15T15:10:07.8369105Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T15:10:07.8369325Z               "line": 82
2026-06-15T15:10:07.8369429Z             },
2026-06-15T15:10:07.8369539Z             {
2026-06-15T15:10:07.8369682Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T15:10:07.8369791Z               "line": 94
2026-06-15T15:10:07.8369902Z             },
2026-06-15T15:10:07.8370001Z             {
2026-06-15T15:10:07.8370144Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T15:10:07.8370255Z               "line": 96
2026-06-15T15:10:07.8370363Z             },
2026-06-15T15:10:07.8370469Z             {
2026-06-15T15:10:07.8370631Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-15T15:10:07.8370740Z               "line": 44
2026-06-15T15:10:07.8370851Z             },
2026-06-15T15:10:07.8370951Z             {
2026-06-15T15:10:07.8371097Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T15:10:07.8371212Z               "line": 20
2026-06-15T15:10:07.8371321Z             },
2026-06-15T15:10:07.8371430Z             {
2026-06-15T15:10:07.8371569Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T15:10:07.8371688Z               "line": 30
2026-06-15T15:10:07.8371789Z             },
2026-06-15T15:10:07.8371898Z             {
2026-06-15T15:10:07.8372036Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T15:10:07.8372147Z               "line": 50
2026-06-15T15:10:07.8372251Z             },
2026-06-15T15:10:07.8372350Z             {
2026-06-15T15:10:07.8372491Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8372599Z               "line": 28
2026-06-15T15:10:07.8372704Z             },
2026-06-15T15:10:07.8372805Z             {
2026-06-15T15:10:07.8372942Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8373052Z               "line": 126
2026-06-15T15:10:07.8373153Z             },
2026-06-15T15:10:07.8373256Z             {
2026-06-15T15:10:07.8373399Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8373521Z               "line": 161
2026-06-15T15:10:07.8373635Z             },
2026-06-15T15:10:07.8373735Z             {
2026-06-15T15:10:07.8373878Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8373987Z               "line": 202
2026-06-15T15:10:07.8374089Z             },
2026-06-15T15:10:07.8374193Z             {
2026-06-15T15:10:07.8374331Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8374446Z               "line": 213
2026-06-15T15:10:07.8374545Z             },
2026-06-15T15:10:07.8374656Z             {
2026-06-15T15:10:07.8374799Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8374903Z               "line": 238
2026-06-15T15:10:07.8375009Z             },
2026-06-15T15:10:07.8375108Z             {
2026-06-15T15:10:07.8375247Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8375358Z               "line": 261
2026-06-15T15:10:07.8375466Z             },
2026-06-15T15:10:07.8375571Z             {
2026-06-15T15:10:07.8375715Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8375823Z               "line": 82
2026-06-15T15:10:07.8375925Z             }
2026-06-15T15:10:07.8376030Z           ]
2026-06-15T15:10:07.8376133Z         },
2026-06-15T15:10:07.8376347Z         "int": {
2026-06-15T15:10:07.8376459Z           "complete": true,
2026-06-15T15:10:07.8376569Z           "evidence": [
2026-06-15T15:10:07.8376679Z             {
2026-06-15T15:10:07.8376835Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T15:10:07.8376947Z               "line": 285
2026-06-15T15:10:07.8377051Z             },
2026-06-15T15:10:07.8377150Z             {
2026-06-15T15:10:07.8377294Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T15:10:07.8377413Z               "line": 102
2026-06-15T15:10:07.8377513Z             },
2026-06-15T15:10:07.8377618Z             {
2026-06-15T15:10:07.8377766Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8377952Z               "line": 615
2026-06-15T15:10:07.8378056Z             },
2026-06-15T15:10:07.8378162Z             {
2026-06-15T15:10:07.8378310Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8378419Z               "line": 1008
2026-06-15T15:10:07.8378530Z             }
2026-06-15T15:10:07.8378643Z           ]
2026-06-15T15:10:07.8378747Z         },
2026-06-15T15:10:07.8378847Z         "unit": {
2026-06-15T15:10:07.8379045Z           "complete": true,
2026-06-15T15:10:07.8379164Z           "evidence": [
2026-06-15T15:10:07.8379260Z             {
2026-06-15T15:10:07.8379402Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8379518Z               "line": 572
2026-06-15T15:10:07.8379613Z             },
2026-06-15T15:10:07.8379717Z             {
2026-06-15T15:10:07.8379856Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8379971Z               "line": 636
2026-06-15T15:10:07.8380085Z             },
2026-06-15T15:10:07.8380185Z             {
2026-06-15T15:10:07.8380323Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8380423Z               "line": 740
2026-06-15T15:10:07.8380524Z             },
2026-06-15T15:10:07.8380633Z             {
2026-06-15T15:10:07.8380777Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8380881Z               "line": 772
2026-06-15T15:10:07.8380985Z             },
2026-06-15T15:10:07.8381087Z             {
2026-06-15T15:10:07.8381214Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8381329Z               "line": 840
2026-06-15T15:10:07.8381430Z             },
2026-06-15T15:10:07.8381534Z             {
2026-06-15T15:10:07.8381680Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8381787Z               "line": 898
2026-06-15T15:10:07.8381891Z             },
2026-06-15T15:10:07.8381991Z             {
2026-06-15T15:10:07.8382134Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8382257Z               "line": 1173
2026-06-15T15:10:07.8382359Z             },
2026-06-15T15:10:07.8382463Z             {
2026-06-15T15:10:07.8382601Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T15:10:07.8382716Z               "line": 157
2026-06-15T15:10:07.8382820Z             },
2026-06-15T15:10:07.8382920Z             {
2026-06-15T15:10:07.8383074Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T15:10:07.8383179Z               "line": 250
2026-06-15T15:10:07.8383278Z             },
2026-06-15T15:10:07.8383380Z             {
2026-06-15T15:10:07.8383526Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T15:10:07.8383627Z               "line": 273
2026-06-15T15:10:07.8383732Z             },
2026-06-15T15:10:07.8383826Z             {
2026-06-15T15:10:07.8383973Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T15:10:07.8384077Z               "line": 355
2026-06-15T15:10:07.8384186Z             },
2026-06-15T15:10:07.8384286Z             {
2026-06-15T15:10:07.8384425Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T15:10:07.8384538Z               "line": 392
2026-06-15T15:10:07.8384634Z             },
2026-06-15T15:10:07.8384735Z             {
2026-06-15T15:10:07.8384987Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T15:10:07.8385092Z               "line": 131
2026-06-15T15:10:07.8385191Z             },
2026-06-15T15:10:07.8385293Z             {
2026-06-15T15:10:07.8385439Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T15:10:07.8385555Z               "line": 72
2026-06-15T15:10:07.8385659Z             },
2026-06-15T15:10:07.8385768Z             {
2026-06-15T15:10:07.8385908Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T15:10:07.8386026Z               "line": 97
2026-06-15T15:10:07.8386131Z             },
2026-06-15T15:10:07.8386233Z             {
2026-06-15T15:10:07.8386480Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8386590Z               "line": 379
2026-06-15T15:10:07.8386702Z             },
2026-06-15T15:10:07.8386797Z             {
2026-06-15T15:10:07.8386940Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8387034Z               "line": 417
2026-06-15T15:10:07.8387143Z             },
2026-06-15T15:10:07.8387244Z             {
2026-06-15T15:10:07.8387372Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8387482Z               "line": 433
2026-06-15T15:10:07.8387582Z             },
2026-06-15T15:10:07.8387687Z             {
2026-06-15T15:10:07.8387826Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8387931Z               "line": 472
2026-06-15T15:10:07.8388035Z             },
2026-06-15T15:10:07.8388136Z             {
2026-06-15T15:10:07.8388274Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8388378Z               "line": 489
2026-06-15T15:10:07.8388484Z             },
2026-06-15T15:10:07.8388588Z             {
2026-06-15T15:10:07.8388722Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8388837Z               "line": 517
2026-06-15T15:10:07.8389008Z             },
2026-06-15T15:10:07.8389114Z             {
2026-06-15T15:10:07.8389260Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T15:10:07.8389364Z               "line": 548
2026-06-15T15:10:07.8389469Z             },
2026-06-15T15:10:07.8389567Z             {
2026-06-15T15:10:07.8389705Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8389811Z               "line": 621
2026-06-15T15:10:07.8389906Z             }
2026-06-15T15:10:07.8390011Z           ]
2026-06-15T15:10:07.8390111Z         }
2026-06-15T15:10:07.8390211Z       }
2026-06-15T15:10:07.8390311Z     },
2026-06-15T15:10:07.8390412Z     {
2026-06-15T15:10:07.8390525Z       "id": "REQ-NOTIF-2",
2026-06-15T15:10:07.8390830Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-15T15:10:07.8390955Z       "requiredStages": [
2026-06-15T15:10:07.8391060Z         "doc",
2026-06-15T15:10:07.8391165Z         "impl",
2026-06-15T15:10:07.8391264Z         "unit",
2026-06-15T15:10:07.8391365Z         "int"
2026-06-15T15:10:07.8391474Z       ],
2026-06-15T15:10:07.8391579Z       "stages": {
2026-06-15T15:10:07.8391680Z         "doc": {
2026-06-15T15:10:07.8391798Z           "complete": true,
2026-06-15T15:10:07.8391919Z           "evidence": [
2026-06-15T15:10:07.8392019Z             {
2026-06-15T15:10:07.8392141Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.8392250Z               "line": 453
2026-06-15T15:10:07.8392352Z             },
2026-06-15T15:10:07.8392451Z             {
2026-06-15T15:10:07.8392584Z               "path": "docs/MANIFEST.md",
2026-06-15T15:10:07.8392690Z               "line": 76
2026-06-15T15:10:07.8392789Z             }
2026-06-15T15:10:07.8392899Z           ]
2026-06-15T15:10:07.8393005Z         },
2026-06-15T15:10:07.8393109Z         "impl": {
2026-06-15T15:10:07.8393214Z           "complete": true,
2026-06-15T15:10:07.8393329Z           "evidence": [
2026-06-15T15:10:07.8393433Z             {
2026-06-15T15:10:07.8393577Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8393814Z               "line": 287
2026-06-15T15:10:07.8393916Z             },
2026-06-15T15:10:07.8394019Z             {
2026-06-15T15:10:07.8394163Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8394273Z               "line": 301
2026-06-15T15:10:07.8394386Z             },
2026-06-15T15:10:07.8394490Z             {
2026-06-15T15:10:07.8394628Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8394736Z               "line": 326
2026-06-15T15:10:07.8394837Z             },
2026-06-15T15:10:07.8394927Z             {
2026-06-15T15:10:07.8395074Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.8395280Z               "line": 199
2026-06-15T15:10:07.8395389Z             },
2026-06-15T15:10:07.8395490Z             {
2026-06-15T15:10:07.8395633Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8395737Z               "line": 91
2026-06-15T15:10:07.8395839Z             },
2026-06-15T15:10:07.8395953Z             {
2026-06-15T15:10:07.8396085Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8396192Z               "line": 1963
2026-06-15T15:10:07.8396301Z             },
2026-06-15T15:10:07.8396400Z             {
2026-06-15T15:10:07.8396534Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8396643Z               "line": 2012
2026-06-15T15:10:07.8396745Z             },
2026-06-15T15:10:07.8396845Z             {
2026-06-15T15:10:07.8396972Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8397083Z               "line": 2091
2026-06-15T15:10:07.8397183Z             },
2026-06-15T15:10:07.8397286Z             {
2026-06-15T15:10:07.8397410Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8397528Z               "line": 2130
2026-06-15T15:10:07.8397627Z             }
2026-06-15T15:10:07.8397727Z           ]
2026-06-15T15:10:07.8397828Z         },
2026-06-15T15:10:07.8397932Z         "int": {
2026-06-15T15:10:07.8398047Z           "complete": true,
2026-06-15T15:10:07.8398152Z           "evidence": [
2026-06-15T15:10:07.8398261Z             {
2026-06-15T15:10:07.8398406Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8398510Z               "line": 741
2026-06-15T15:10:07.8398609Z             },
2026-06-15T15:10:07.8398711Z             {
2026-06-15T15:10:07.8398857Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8399035Z               "line": 1161
2026-06-15T15:10:07.8399139Z             }
2026-06-15T15:10:07.8399244Z           ]
2026-06-15T15:10:07.8399345Z         },
2026-06-15T15:10:07.8399453Z         "unit": {
2026-06-15T15:10:07.8399563Z           "complete": true,
2026-06-15T15:10:07.8399679Z           "evidence": [
2026-06-15T15:10:07.8399782Z             {
2026-06-15T15:10:07.8399924Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8400038Z               "line": 1022
2026-06-15T15:10:07.8400142Z             },
2026-06-15T15:10:07.8400246Z             {
2026-06-15T15:10:07.8400390Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8400504Z               "line": 1090
2026-06-15T15:10:07.8400604Z             },
2026-06-15T15:10:07.8400705Z             {
2026-06-15T15:10:07.8400833Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8400939Z               "line": 6708
2026-06-15T15:10:07.8401038Z             },
2026-06-15T15:10:07.8401128Z             {
2026-06-15T15:10:07.8401249Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8401386Z               "line": 6763
2026-06-15T15:10:07.8401486Z             }
2026-06-15T15:10:07.8401588Z           ]
2026-06-15T15:10:07.8401691Z         }
2026-06-15T15:10:07.8401796Z       }
2026-06-15T15:10:07.8401898Z     },
2026-06-15T15:10:07.8401996Z     {
2026-06-15T15:10:07.8402111Z       "id": "REQ-PAIR-1",
2026-06-15T15:10:07.8402245Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-15T15:10:07.8402358Z       "requiredStages": [
2026-06-15T15:10:07.8402570Z         "impl",
2026-06-15T15:10:07.8402668Z         "unit",
2026-06-15T15:10:07.8402772Z         "int"
2026-06-15T15:10:07.8402887Z       ],
2026-06-15T15:10:07.8402988Z       "stages": {
2026-06-15T15:10:07.8403096Z         "doc": {
2026-06-15T15:10:07.8403217Z           "complete": false,
2026-06-15T15:10:07.8403331Z           "evidence": []
2026-06-15T15:10:07.8403430Z         },
2026-06-15T15:10:07.8403531Z         "impl": {
2026-06-15T15:10:07.8403655Z           "complete": true,
2026-06-15T15:10:07.8403765Z           "evidence": [
2026-06-15T15:10:07.8403860Z             {
2026-06-15T15:10:07.8404031Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.8404241Z               "line": 27
2026-06-15T15:10:07.8404351Z             },
2026-06-15T15:10:07.8404457Z             {
2026-06-15T15:10:07.8404617Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.8404733Z               "line": 88
2026-06-15T15:10:07.8404838Z             },
2026-06-15T15:10:07.8404946Z             {
2026-06-15T15:10:07.8405103Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.8405221Z               "line": 110
2026-06-15T15:10:07.8405325Z             },
2026-06-15T15:10:07.8405425Z             {
2026-06-15T15:10:07.8405573Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.8405678Z               "line": 153
2026-06-15T15:10:07.8405784Z             },
2026-06-15T15:10:07.8405888Z             {
2026-06-15T15:10:07.8406050Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.8406164Z               "line": 182
2026-06-15T15:10:07.8406278Z             },
2026-06-15T15:10:07.8406389Z             {
2026-06-15T15:10:07.8406541Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T15:10:07.8406660Z               "line": 29
2026-06-15T15:10:07.8406756Z             },
2026-06-15T15:10:07.8406856Z             {
2026-06-15T15:10:07.8407023Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T15:10:07.8407141Z               "line": 31
2026-06-15T15:10:07.8407246Z             },
2026-06-15T15:10:07.8407348Z             {
2026-06-15T15:10:07.8407514Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8407615Z               "line": 44
2026-06-15T15:10:07.8407725Z             },
2026-06-15T15:10:07.8407822Z             {
2026-06-15T15:10:07.8407970Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8408074Z               "line": 171
2026-06-15T15:10:07.8408168Z             },
2026-06-15T15:10:07.8408274Z             {
2026-06-15T15:10:07.8408422Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8408540Z               "line": 376
2026-06-15T15:10:07.8408641Z             }
2026-06-15T15:10:07.8408746Z           ]
2026-06-15T15:10:07.8408845Z         },
2026-06-15T15:10:07.8409017Z         "int": {
2026-06-15T15:10:07.8409136Z           "complete": true,
2026-06-15T15:10:07.8409266Z           "evidence": [
2026-06-15T15:10:07.8409370Z             {
2026-06-15T15:10:07.8409522Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8409642Z               "line": 576
2026-06-15T15:10:07.8409747Z             },
2026-06-15T15:10:07.8409847Z             {
2026-06-15T15:10:07.8409994Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8410095Z               "line": 793
2026-06-15T15:10:07.8410196Z             }
2026-06-15T15:10:07.8410300Z           ]
2026-06-15T15:10:07.8410409Z         },
2026-06-15T15:10:07.8410518Z         "unit": {
2026-06-15T15:10:07.8410645Z           "complete": true,
2026-06-15T15:10:07.8410763Z           "evidence": [
2026-06-15T15:10:07.8410864Z             {
2026-06-15T15:10:07.8411026Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.8411140Z               "line": 236
2026-06-15T15:10:07.8411241Z             },
2026-06-15T15:10:07.8411465Z             {
2026-06-15T15:10:07.8411618Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T15:10:07.8411731Z               "line": 349
2026-06-15T15:10:07.8411833Z             },
2026-06-15T15:10:07.8411932Z             {
2026-06-15T15:10:07.8412089Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T15:10:07.8412195Z               "line": 194
2026-06-15T15:10:07.8412294Z             },
2026-06-15T15:10:07.8412399Z             {
2026-06-15T15:10:07.8412561Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T15:10:07.8412666Z               "line": 216
2026-06-15T15:10:07.8412767Z             },
2026-06-15T15:10:07.8412971Z             {
2026-06-15T15:10:07.8413126Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T15:10:07.8413237Z               "line": 230
2026-06-15T15:10:07.8413342Z             },
2026-06-15T15:10:07.8413447Z             {
2026-06-15T15:10:07.8413590Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T15:10:07.8413719Z               "line": 242
2026-06-15T15:10:07.8413824Z             },
2026-06-15T15:10:07.8413924Z             {
2026-06-15T15:10:07.8414073Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T15:10:07.8414187Z               "line": 256
2026-06-15T15:10:07.8414290Z             },
2026-06-15T15:10:07.8414388Z             {
2026-06-15T15:10:07.8414549Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T15:10:07.8414663Z               "line": 270
2026-06-15T15:10:07.8414769Z             },
2026-06-15T15:10:07.8414873Z             {
2026-06-15T15:10:07.8415017Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T15:10:07.8415140Z               "line": 277
2026-06-15T15:10:07.8415240Z             },
2026-06-15T15:10:07.8415347Z             {
2026-06-15T15:10:07.8415492Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T15:10:07.8415601Z               "line": 295
2026-06-15T15:10:07.8415706Z             },
2026-06-15T15:10:07.8415804Z             {
2026-06-15T15:10:07.8415957Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8416067Z               "line": 968
2026-06-15T15:10:07.8416162Z             },
2026-06-15T15:10:07.8416271Z             {
2026-06-15T15:10:07.8416420Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8416523Z               "line": 1051
2026-06-15T15:10:07.8416625Z             },
2026-06-15T15:10:07.8416729Z             {
2026-06-15T15:10:07.8416872Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8416997Z               "line": 1121
2026-06-15T15:10:07.8417092Z             },
2026-06-15T15:10:07.8417197Z             {
2026-06-15T15:10:07.8417344Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8417454Z               "line": 1182
2026-06-15T15:10:07.8417550Z             },
2026-06-15T15:10:07.8417655Z             {
2026-06-15T15:10:07.8417801Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8417913Z               "line": 1238
2026-06-15T15:10:07.8418016Z             },
2026-06-15T15:10:07.8418116Z             {
2026-06-15T15:10:07.8418261Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8418378Z               "line": 1457
2026-06-15T15:10:07.8418478Z             }
2026-06-15T15:10:07.8418583Z           ]
2026-06-15T15:10:07.8418691Z         }
2026-06-15T15:10:07.8418790Z       }
2026-06-15T15:10:07.8418896Z     },
2026-06-15T15:10:07.8419081Z     {
2026-06-15T15:10:07.8419201Z       "id": "REQ-PAIR-2",
2026-06-15T15:10:07.8419381Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-15T15:10:07.8419502Z       "requiredStages": [],
2026-06-15T15:10:07.8419621Z       "stages": {
2026-06-15T15:10:07.8419724Z         "doc": {
2026-06-15T15:10:07.8419845Z           "complete": false,
2026-06-15T15:10:07.8419949Z           "evidence": []
2026-06-15T15:10:07.8420170Z         },
2026-06-15T15:10:07.8420287Z         "impl": {
2026-06-15T15:10:07.8420393Z           "complete": false,
2026-06-15T15:10:07.8420508Z           "evidence": []
2026-06-15T15:10:07.8420611Z         },
2026-06-15T15:10:07.8420722Z         "int": {
2026-06-15T15:10:07.8420842Z           "complete": false,
2026-06-15T15:10:07.8420959Z           "evidence": []
2026-06-15T15:10:07.8421059Z         },
2026-06-15T15:10:07.8421159Z         "unit": {
2026-06-15T15:10:07.8421276Z           "complete": false,
2026-06-15T15:10:07.8421381Z           "evidence": []
2026-06-15T15:10:07.8421486Z         }
2026-06-15T15:10:07.8421586Z       }
2026-06-15T15:10:07.8421815Z     },
2026-06-15T15:10:07.8421914Z     {
2026-06-15T15:10:07.8422035Z       "id": "REQ-PAIR-3",
2026-06-15T15:10:07.8422215Z       "title": "Fetch current pairing code from any paired node",
2026-06-15T15:10:07.8422325Z       "requiredStages": [
2026-06-15T15:10:07.8422426Z         "impl",
2026-06-15T15:10:07.8422540Z         "unit"
2026-06-15T15:10:07.8422639Z       ],
2026-06-15T15:10:07.8422755Z       "stages": {
2026-06-15T15:10:07.8422859Z         "doc": {
2026-06-15T15:10:07.8422969Z           "complete": false,
2026-06-15T15:10:07.8423075Z           "evidence": []
2026-06-15T15:10:07.8423179Z         },
2026-06-15T15:10:07.8423284Z         "impl": {
2026-06-15T15:10:07.8423408Z           "complete": true,
2026-06-15T15:10:07.8423522Z           "evidence": [
2026-06-15T15:10:07.8423624Z             {
2026-06-15T15:10:07.8423765Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8423874Z               "line": 2821
2026-06-15T15:10:07.8423974Z             },
2026-06-15T15:10:07.8424089Z             {
2026-06-15T15:10:07.8424226Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8424332Z               "line": 2890
2026-06-15T15:10:07.8424437Z             },
2026-06-15T15:10:07.8424536Z             {
2026-06-15T15:10:07.8424661Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8424784Z               "line": 3271
2026-06-15T15:10:07.8424880Z             },
2026-06-15T15:10:07.8424981Z             {
2026-06-15T15:10:07.8425104Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8425209Z               "line": 4516
2026-06-15T15:10:07.8425310Z             }
2026-06-15T15:10:07.8425409Z           ]
2026-06-15T15:10:07.8425509Z         },
2026-06-15T15:10:07.8425611Z         "int": {
2026-06-15T15:10:07.8425738Z           "complete": false,
2026-06-15T15:10:07.8425858Z           "evidence": []
2026-06-15T15:10:07.8425963Z         },
2026-06-15T15:10:07.8426067Z         "unit": {
2026-06-15T15:10:07.8426180Z           "complete": true,
2026-06-15T15:10:07.8426308Z           "evidence": [
2026-06-15T15:10:07.8426412Z             {
2026-06-15T15:10:07.8426541Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8426665Z               "line": 8378
2026-06-15T15:10:07.8426759Z             },
2026-06-15T15:10:07.8426870Z             {
2026-06-15T15:10:07.8427008Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8427117Z               "line": 8593
2026-06-15T15:10:07.8427209Z             },
2026-06-15T15:10:07.8427309Z             {
2026-06-15T15:10:07.8427442Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8427547Z               "line": 9195
2026-06-15T15:10:07.8427647Z             },
2026-06-15T15:10:07.8427747Z             {
2026-06-15T15:10:07.8427886Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8427990Z               "line": 9214
2026-06-15T15:10:07.8428091Z             },
2026-06-15T15:10:07.8428191Z             {
2026-06-15T15:10:07.8428315Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8428435Z               "line": 9238
2026-06-15T15:10:07.8428539Z             },
2026-06-15T15:10:07.8428649Z             {
2026-06-15T15:10:07.8428774Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8428891Z               "line": 9257
2026-06-15T15:10:07.8429148Z             },
2026-06-15T15:10:07.8429246Z             {
2026-06-15T15:10:07.8429384Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8429499Z               "line": 9270
2026-06-15T15:10:07.8429603Z             },
2026-06-15T15:10:07.8429708Z             {
2026-06-15T15:10:07.8429832Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8429941Z               "line": 9279
2026-06-15T15:10:07.8430048Z             }
2026-06-15T15:10:07.8430152Z           ]
2026-06-15T15:10:07.8430256Z         }
2026-06-15T15:10:07.8430357Z       }
2026-06-15T15:10:07.8430457Z     },
2026-06-15T15:10:07.8430557Z     {
2026-06-15T15:10:07.8430682Z       "id": "REQ-PAIR-4",
2026-06-15T15:10:07.8430924Z       "title": "Subnet naming on first pairing",
2026-06-15T15:10:07.8431049Z       "requiredStages": [
2026-06-15T15:10:07.8431153Z         "impl",
2026-06-15T15:10:07.8431258Z         "unit"
2026-06-15T15:10:07.8431354Z       ],
2026-06-15T15:10:07.8431463Z       "stages": {
2026-06-15T15:10:07.8431586Z         "doc": {
2026-06-15T15:10:07.8431700Z           "complete": false,
2026-06-15T15:10:07.8431813Z           "evidence": []
2026-06-15T15:10:07.8431917Z         },
2026-06-15T15:10:07.8432028Z         "impl": {
2026-06-15T15:10:07.8432141Z           "complete": true,
2026-06-15T15:10:07.8432260Z           "evidence": [
2026-06-15T15:10:07.8432361Z             {
2026-06-15T15:10:07.8432508Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T15:10:07.8432614Z               "line": 174
2026-06-15T15:10:07.8432714Z             }
2026-06-15T15:10:07.8432818Z           ]
2026-06-15T15:10:07.8432920Z         },
2026-06-15T15:10:07.8433024Z         "int": {
2026-06-15T15:10:07.8433152Z           "complete": false,
2026-06-15T15:10:07.8433258Z           "evidence": []
2026-06-15T15:10:07.8433357Z         },
2026-06-15T15:10:07.8433462Z         "unit": {
2026-06-15T15:10:07.8433582Z           "complete": true,
2026-06-15T15:10:07.8433695Z           "evidence": [
2026-06-15T15:10:07.8433806Z             {
2026-06-15T15:10:07.8433978Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8434082Z               "line": 1294
2026-06-15T15:10:07.8434189Z             }
2026-06-15T15:10:07.8434293Z           ]
2026-06-15T15:10:07.8434396Z         }
2026-06-15T15:10:07.8434501Z       }
2026-06-15T15:10:07.8434606Z     },
2026-06-15T15:10:07.8434710Z     {
2026-06-15T15:10:07.8434825Z       "id": "REQ-PAIR-5",
2026-06-15T15:10:07.8435184Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-15T15:10:07.8435298Z       "requiredStages": [
2026-06-15T15:10:07.8435421Z         "impl",
2026-06-15T15:10:07.8435517Z         "unit",
2026-06-15T15:10:07.8435626Z         "int"
2026-06-15T15:10:07.8435726Z       ],
2026-06-15T15:10:07.8435832Z       "stages": {
2026-06-15T15:10:07.8435936Z         "doc": {
2026-06-15T15:10:07.8436041Z           "complete": false,
2026-06-15T15:10:07.8436157Z           "evidence": []
2026-06-15T15:10:07.8436264Z         },
2026-06-15T15:10:07.8436380Z         "impl": {
2026-06-15T15:10:07.8436491Z           "complete": true,
2026-06-15T15:10:07.8436598Z           "evidence": [
2026-06-15T15:10:07.8436712Z             {
2026-06-15T15:10:07.8436868Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T15:10:07.8436986Z               "line": 44
2026-06-15T15:10:07.8437096Z             },
2026-06-15T15:10:07.8437207Z             {
2026-06-15T15:10:07.8437368Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T15:10:07.8437483Z               "line": 96
2026-06-15T15:10:07.8437596Z             },
2026-06-15T15:10:07.8437707Z             {
2026-06-15T15:10:07.8437864Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T15:10:07.8437982Z               "line": 107
2026-06-15T15:10:07.8438093Z             },
2026-06-15T15:10:07.8438202Z             {
2026-06-15T15:10:07.8438355Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T15:10:07.8438574Z               "line": 124
2026-06-15T15:10:07.8438675Z             },
2026-06-15T15:10:07.8438784Z             {
2026-06-15T15:10:07.8438932Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T15:10:07.8439132Z               "line": 155
2026-06-15T15:10:07.8439237Z             },
2026-06-15T15:10:07.8439339Z             {
2026-06-15T15:10:07.8439499Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T15:10:07.8439603Z               "line": 195
2026-06-15T15:10:07.8439708Z             },
2026-06-15T15:10:07.8439811Z             {
2026-06-15T15:10:07.8439963Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T15:10:07.8440187Z               "line": 251
2026-06-15T15:10:07.8440288Z             },
2026-06-15T15:10:07.8440393Z             {
2026-06-15T15:10:07.8440569Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T15:10:07.8440679Z               "line": 33
2026-06-15T15:10:07.8440783Z             },
2026-06-15T15:10:07.8440884Z             {
2026-06-15T15:10:07.8441051Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T15:10:07.8441164Z               "line": 45
2026-06-15T15:10:07.8441261Z             },
2026-06-15T15:10:07.8441365Z             {
2026-06-15T15:10:07.8441528Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T15:10:07.8444385Z               "line": 59
2026-06-15T15:10:07.8444510Z             },
2026-06-15T15:10:07.8444618Z             {
2026-06-15T15:10:07.8444786Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8444909Z               "line": 376
2026-06-15T15:10:07.8445013Z             }
2026-06-15T15:10:07.8445118Z           ]
2026-06-15T15:10:07.8445219Z         },
2026-06-15T15:10:07.8445318Z         "int": {
2026-06-15T15:10:07.8445433Z           "complete": true,
2026-06-15T15:10:07.8445539Z           "evidence": [
2026-06-15T15:10:07.8445637Z             {
2026-06-15T15:10:07.8445801Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8445905Z               "line": 793
2026-06-15T15:10:07.8446010Z             },
2026-06-15T15:10:07.8446111Z             {
2026-06-15T15:10:07.8446276Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T15:10:07.8446382Z               "line": 342
2026-06-15T15:10:07.8446482Z             }
2026-06-15T15:10:07.8446586Z           ]
2026-06-15T15:10:07.8446693Z         },
2026-06-15T15:10:07.8446801Z         "unit": {
2026-06-15T15:10:07.8446920Z           "complete": true,
2026-06-15T15:10:07.8447027Z           "evidence": [
2026-06-15T15:10:07.8447130Z             {
2026-06-15T15:10:07.8447276Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T15:10:07.8447382Z               "line": 293
2026-06-15T15:10:07.8447475Z             },
2026-06-15T15:10:07.8447575Z             {
2026-06-15T15:10:07.8447719Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T15:10:07.8447828Z               "line": 304
2026-06-15T15:10:07.8447928Z             },
2026-06-15T15:10:07.8448029Z             {
2026-06-15T15:10:07.8448171Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T15:10:07.8448286Z               "line": 406
2026-06-15T15:10:07.8448396Z             },
2026-06-15T15:10:07.8448490Z             {
2026-06-15T15:10:07.8448663Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T15:10:07.8448763Z               "line": 72
2026-06-15T15:10:07.8448862Z             },
2026-06-15T15:10:07.8449039Z             {
2026-06-15T15:10:07.8449206Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T15:10:07.8449330Z               "line": 82
2026-06-15T15:10:07.8449430Z             },
2026-06-15T15:10:07.8449526Z             {
2026-06-15T15:10:07.8449692Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T15:10:07.8449797Z               "line": 100
2026-06-15T15:10:07.8450035Z             },
2026-06-15T15:10:07.8450139Z             {
2026-06-15T15:10:07.8450314Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T15:10:07.8450423Z               "line": 110
2026-06-15T15:10:07.8450533Z             },
2026-06-15T15:10:07.8450634Z             {
2026-06-15T15:10:07.8450804Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T15:10:07.8450920Z               "line": 125
2026-06-15T15:10:07.8451019Z             },
2026-06-15T15:10:07.8451119Z             {
2026-06-15T15:10:07.8451263Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8451487Z               "line": 1044
2026-06-15T15:10:07.8451596Z             },
2026-06-15T15:10:07.8451696Z             {
2026-06-15T15:10:07.8451854Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8451958Z               "line": 1110
2026-06-15T15:10:07.8452063Z             },
2026-06-15T15:10:07.8452165Z             {
2026-06-15T15:10:07.8452321Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8452427Z               "line": 1357
2026-06-15T15:10:07.8452522Z             }
2026-06-15T15:10:07.8452626Z           ]
2026-06-15T15:10:07.8452730Z         }
2026-06-15T15:10:07.8452835Z       }
2026-06-15T15:10:07.8452933Z     },
2026-06-15T15:10:07.8453037Z     {
2026-06-15T15:10:07.8453143Z       "id": "REQ-PAIR-6",
2026-06-15T15:10:07.8453448Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-15T15:10:07.8453567Z       "requiredStages": [
2026-06-15T15:10:07.8453667Z         "impl",
2026-06-15T15:10:07.8453782Z         "unit"
2026-06-15T15:10:07.8453882Z       ],
2026-06-15T15:10:07.8453986Z       "stages": {
2026-06-15T15:10:07.8454092Z         "doc": {
2026-06-15T15:10:07.8454211Z           "complete": false,
2026-06-15T15:10:07.8454330Z           "evidence": []
2026-06-15T15:10:07.8454435Z         },
2026-06-15T15:10:07.8454545Z         "impl": {
2026-06-15T15:10:07.8454664Z           "complete": true,
2026-06-15T15:10:07.8454783Z           "evidence": [
2026-06-15T15:10:07.8454883Z             {
2026-06-15T15:10:07.8455023Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8455131Z               "line": 2890
2026-06-15T15:10:07.8455231Z             },
2026-06-15T15:10:07.8455338Z             {
2026-06-15T15:10:07.8455460Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8455563Z               "line": 3271
2026-06-15T15:10:07.8455669Z             },
2026-06-15T15:10:07.8455770Z             {
2026-06-15T15:10:07.8455921Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.8456046Z               "line": 18
2026-06-15T15:10:07.8456146Z             },
2026-06-15T15:10:07.8456245Z             {
2026-06-15T15:10:07.8456384Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.8456493Z               "line": 49
2026-06-15T15:10:07.8456609Z             },
2026-06-15T15:10:07.8456709Z             {
2026-06-15T15:10:07.8456836Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.8456952Z               "line": 318
2026-06-15T15:10:07.8457051Z             }
2026-06-15T15:10:07.8457151Z           ]
2026-06-15T15:10:07.8457253Z         },
2026-06-15T15:10:07.8457357Z         "int": {
2026-06-15T15:10:07.8457475Z           "complete": false,
2026-06-15T15:10:07.8457577Z           "evidence": []
2026-06-15T15:10:07.8457676Z         },
2026-06-15T15:10:07.8457775Z         "unit": {
2026-06-15T15:10:07.8457894Z           "complete": true,
2026-06-15T15:10:07.8457994Z           "evidence": [
2026-06-15T15:10:07.8458107Z             {
2026-06-15T15:10:07.8458226Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8458332Z               "line": 9292
2026-06-15T15:10:07.8458431Z             },
2026-06-15T15:10:07.8458527Z             {
2026-06-15T15:10:07.8458651Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8458832Z               "line": 9309
2026-06-15T15:10:07.8459031Z             },
2026-06-15T15:10:07.8459127Z             {
2026-06-15T15:10:07.8459251Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.8459356Z               "line": 383
2026-06-15T15:10:07.8459451Z             },
2026-06-15T15:10:07.8459552Z             {
2026-06-15T15:10:07.8459689Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T15:10:07.8459796Z               "line": 392
2026-06-15T15:10:07.8459900Z             }
2026-06-15T15:10:07.8460000Z           ]
2026-06-15T15:10:07.8460101Z         }
2026-06-15T15:10:07.8460206Z       }
2026-06-15T15:10:07.8460305Z     },
2026-06-15T15:10:07.8460530Z     {
2026-06-15T15:10:07.8460652Z       "id": "REQ-PAIR-7",
2026-06-15T15:10:07.8460842Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-15T15:10:07.8460960Z       "requiredStages": [],
2026-06-15T15:10:07.8461060Z       "stages": {
2026-06-15T15:10:07.8461160Z         "doc": {
2026-06-15T15:10:07.8461288Z           "complete": false,
2026-06-15T15:10:07.8461403Z           "evidence": []
2026-06-15T15:10:07.8461508Z         },
2026-06-15T15:10:07.8461617Z         "impl": {
2026-06-15T15:10:07.8461733Z           "complete": false,
2026-06-15T15:10:07.8461842Z           "evidence": []
2026-06-15T15:10:07.8461941Z         },
2026-06-15T15:10:07.8462037Z         "int": {
2026-06-15T15:10:07.8462156Z           "complete": false,
2026-06-15T15:10:07.8462261Z           "evidence": []
2026-06-15T15:10:07.8462362Z         },
2026-06-15T15:10:07.8462462Z         "unit": {
2026-06-15T15:10:07.8462576Z           "complete": false,
2026-06-15T15:10:07.8462696Z           "evidence": []
2026-06-15T15:10:07.8462800Z         }
2026-06-15T15:10:07.8462900Z       }
2026-06-15T15:10:07.8463001Z     },
2026-06-15T15:10:07.8463110Z     {
2026-06-15T15:10:07.8463219Z       "id": "REQ-PAIR-8",
2026-06-15T15:10:07.8464671Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-15T15:10:07.8464795Z       "requiredStages": [
2026-06-15T15:10:07.8464900Z         "impl",
2026-06-15T15:10:07.8465005Z         "unit"
2026-06-15T15:10:07.8465110Z       ],
2026-06-15T15:10:07.8465219Z       "stages": {
2026-06-15T15:10:07.8465320Z         "doc": {
2026-06-15T15:10:07.8465443Z           "complete": false,
2026-06-15T15:10:07.8465564Z           "evidence": []
2026-06-15T15:10:07.8465672Z         },
2026-06-15T15:10:07.8465777Z         "impl": {
2026-06-15T15:10:07.8465893Z           "complete": true,
2026-06-15T15:10:07.8466006Z           "evidence": [
2026-06-15T15:10:07.8466100Z             {
2026-06-15T15:10:07.8466253Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8466372Z               "line": 577
2026-06-15T15:10:07.8466482Z             },
2026-06-15T15:10:07.8466583Z             {
2026-06-15T15:10:07.8466729Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T15:10:07.8466845Z               "line": 22
2026-06-15T15:10:07.8466945Z             },
2026-06-15T15:10:07.8467049Z             {
2026-06-15T15:10:07.8467197Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T15:10:07.8467301Z               "line": 76
2026-06-15T15:10:07.8467406Z             },
2026-06-15T15:10:07.8467508Z             {
2026-06-15T15:10:07.8467669Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T15:10:07.8467774Z               "line": 127
2026-06-15T15:10:07.8467875Z             }
2026-06-15T15:10:07.8467968Z           ]
2026-06-15T15:10:07.8468070Z         },
2026-06-15T15:10:07.8468176Z         "int": {
2026-06-15T15:10:07.8468293Z           "complete": false,
2026-06-15T15:10:07.8468526Z           "evidence": []
2026-06-15T15:10:07.8468628Z         },
2026-06-15T15:10:07.8468733Z         "unit": {
2026-06-15T15:10:07.8468848Z           "complete": true,
2026-06-15T15:10:07.8469038Z           "evidence": [
2026-06-15T15:10:07.8469140Z             {
2026-06-15T15:10:07.8469291Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T15:10:07.8469402Z               "line": 183
2026-06-15T15:10:07.8469502Z             },
2026-06-15T15:10:07.8469606Z             {
2026-06-15T15:10:07.8469764Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T15:10:07.8469869Z               "line": 195
2026-06-15T15:10:07.8470074Z             },
2026-06-15T15:10:07.8470178Z             {
2026-06-15T15:10:07.8470326Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T15:10:07.8470432Z               "line": 211
2026-06-15T15:10:07.8470531Z             },
2026-06-15T15:10:07.8470632Z             {
2026-06-15T15:10:07.8470780Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T15:10:07.8470893Z               "line": 227
2026-06-15T15:10:07.8470995Z             }
2026-06-15T15:10:07.8471095Z           ]
2026-06-15T15:10:07.8471193Z         }
2026-06-15T15:10:07.8471298Z       }
2026-06-15T15:10:07.8471393Z     },
2026-06-15T15:10:07.8471496Z     {
2026-06-15T15:10:07.8471610Z       "id": "REQ-PRES-1",
2026-06-15T15:10:07.8473008Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-15T15:10:07.8473131Z       "requiredStages": [
2026-06-15T15:10:07.8473232Z         "impl",
2026-06-15T15:10:07.8473341Z         "unit",
2026-06-15T15:10:07.8473446Z         "int"
2026-06-15T15:10:07.8473552Z       ],
2026-06-15T15:10:07.8473656Z       "stages": {
2026-06-15T15:10:07.8473760Z         "doc": {
2026-06-15T15:10:07.8473883Z           "complete": true,
2026-06-15T15:10:07.8473992Z           "evidence": [
2026-06-15T15:10:07.8474091Z             {
2026-06-15T15:10:07.8474220Z               "path": "docs/DEFERRED.md",
2026-06-15T15:10:07.8474326Z               "line": 11
2026-06-15T15:10:07.8474430Z             }
2026-06-15T15:10:07.8474535Z           ]
2026-06-15T15:10:07.8474635Z         },
2026-06-15T15:10:07.8474739Z         "impl": {
2026-06-15T15:10:07.8474855Z           "complete": true,
2026-06-15T15:10:07.8474979Z           "evidence": [
2026-06-15T15:10:07.8475078Z             {
2026-06-15T15:10:07.8475231Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.8475331Z               "line": 515
2026-06-15T15:10:07.8475445Z             },
2026-06-15T15:10:07.8475541Z             {
2026-06-15T15:10:07.8475684Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.8475789Z               "line": 567
2026-06-15T15:10:07.8475889Z             },
2026-06-15T15:10:07.8475994Z             {
2026-06-15T15:10:07.8476138Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8476246Z               "line": 188
2026-06-15T15:10:07.8476342Z             },
2026-06-15T15:10:07.8476443Z             {
2026-06-15T15:10:07.8476584Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8476693Z               "line": 214
2026-06-15T15:10:07.8476794Z             },
2026-06-15T15:10:07.8476899Z             {
2026-06-15T15:10:07.8477046Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T15:10:07.8477147Z               "line": 28
2026-06-15T15:10:07.8477242Z             },
2026-06-15T15:10:07.8477351Z             {
2026-06-15T15:10:07.8477495Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T15:10:07.8477709Z               "line": 105
2026-06-15T15:10:07.8477815Z             },
2026-06-15T15:10:07.8477914Z             {
2026-06-15T15:10:07.8478054Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T15:10:07.8478158Z               "line": 161
2026-06-15T15:10:07.8478263Z             },
2026-06-15T15:10:07.8478354Z             {
2026-06-15T15:10:07.8478491Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T15:10:07.8478591Z               "line": 180
2026-06-15T15:10:07.8478693Z             },
2026-06-15T15:10:07.8478796Z             {
2026-06-15T15:10:07.8479015Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8479279Z               "line": 415
2026-06-15T15:10:07.8479414Z             },
2026-06-15T15:10:07.8479518Z             {
2026-06-15T15:10:07.8479671Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8479771Z               "line": 289
2026-06-15T15:10:07.8479870Z             },
2026-06-15T15:10:07.8479976Z             {
2026-06-15T15:10:07.8480128Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8480247Z               "line": 336
2026-06-15T15:10:07.8480358Z             },
2026-06-15T15:10:07.8480457Z             {
2026-06-15T15:10:07.8480596Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8480701Z               "line": 362
2026-06-15T15:10:07.8480801Z             },
2026-06-15T15:10:07.8480911Z             {
2026-06-15T15:10:07.8481049Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8481172Z               "line": 100
2026-06-15T15:10:07.8481283Z             }
2026-06-15T15:10:07.8481391Z           ]
2026-06-15T15:10:07.8481497Z         },
2026-06-15T15:10:07.8481603Z         "int": {
2026-06-15T15:10:07.8481720Z           "complete": true,
2026-06-15T15:10:07.8481829Z           "evidence": [
2026-06-15T15:10:07.8481929Z             {
2026-06-15T15:10:07.8482075Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T15:10:07.8482218Z               "line": 559
2026-06-15T15:10:07.8482324Z             },
2026-06-15T15:10:07.8482423Z             {
2026-06-15T15:10:07.8482567Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8482672Z               "line": 678
2026-06-15T15:10:07.8482776Z             },
2026-06-15T15:10:07.8482877Z             {
2026-06-15T15:10:07.8483015Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8483153Z               "line": 1071
2026-06-15T15:10:07.8483244Z             }
2026-06-15T15:10:07.8483348Z           ]
2026-06-15T15:10:07.8483453Z         },
2026-06-15T15:10:07.8483564Z         "unit": {
2026-06-15T15:10:07.8483691Z           "complete": true,
2026-06-15T15:10:07.8483802Z           "evidence": [
2026-06-15T15:10:07.8483920Z             {
2026-06-15T15:10:07.8484098Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8484212Z               "line": 674
2026-06-15T15:10:07.8484325Z             },
2026-06-15T15:10:07.8484435Z             {
2026-06-15T15:10:07.8484585Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T15:10:07.8484689Z               "line": 238
2026-06-15T15:10:07.8484795Z             },
2026-06-15T15:10:07.8484895Z             {
2026-06-15T15:10:07.8485037Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T15:10:07.8485162Z               "line": 269
2026-06-15T15:10:07.8485261Z             },
2026-06-15T15:10:07.8485356Z             {
2026-06-15T15:10:07.8485500Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T15:10:07.8485614Z               "line": 305
2026-06-15T15:10:07.8485715Z             },
2026-06-15T15:10:07.8485820Z             {
2026-06-15T15:10:07.8485958Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T15:10:07.8486069Z               "line": 336
2026-06-15T15:10:07.8486172Z             },
2026-06-15T15:10:07.8486277Z             {
2026-06-15T15:10:07.8486435Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8486660Z               "line": 1165
2026-06-15T15:10:07.8486769Z             },
2026-06-15T15:10:07.8486873Z             {
2026-06-15T15:10:07.8487013Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8487121Z               "line": 1131
2026-06-15T15:10:07.8487258Z             }
2026-06-15T15:10:07.8487359Z           ]
2026-06-15T15:10:07.8487459Z         }
2026-06-15T15:10:07.8487559Z       }
2026-06-15T15:10:07.8487674Z     },
2026-06-15T15:10:07.8487774Z     {
2026-06-15T15:10:07.8487888Z       "id": "REQ-RC-1",
2026-06-15T15:10:07.8490003Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-15T15:10:07.8490255Z       "requiredStages": [
2026-06-15T15:10:07.8490369Z         "impl",
2026-06-15T15:10:07.8490468Z         "unit",
2026-06-15T15:10:07.8490570Z         "int"
2026-06-15T15:10:07.8490670Z       ],
2026-06-15T15:10:07.8490783Z       "stages": {
2026-06-15T15:10:07.8490884Z         "doc": {
2026-06-15T15:10:07.8490994Z           "complete": false,
2026-06-15T15:10:07.8491113Z           "evidence": []
2026-06-15T15:10:07.8491213Z         },
2026-06-15T15:10:07.8491318Z         "impl": {
2026-06-15T15:10:07.8491432Z           "complete": true,
2026-06-15T15:10:07.8491552Z           "evidence": [
2026-06-15T15:10:07.8491651Z             {
2026-06-15T15:10:07.8491796Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.8491923Z               "line": 895
2026-06-15T15:10:07.8492019Z             },
2026-06-15T15:10:07.8492120Z             {
2026-06-15T15:10:07.8492271Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.8492375Z               "line": 1168
2026-06-15T15:10:07.8492475Z             },
2026-06-15T15:10:07.8492574Z             {
2026-06-15T15:10:07.8492730Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.8492832Z               "line": 816
2026-06-15T15:10:07.8492945Z             },
2026-06-15T15:10:07.8493050Z             {
2026-06-15T15:10:07.8493198Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.8493321Z               "line": 850
2026-06-15T15:10:07.8493418Z             },
2026-06-15T15:10:07.8493532Z             {
2026-06-15T15:10:07.8493660Z               "path": "crates/spt/src/rc.rs",
2026-06-15T15:10:07.8493780Z               "line": 22
2026-06-15T15:10:07.8493880Z             },
2026-06-15T15:10:07.8493980Z             {
2026-06-15T15:10:07.8494114Z               "path": "crates/spt/src/rc.rs",
2026-06-15T15:10:07.8494247Z               "line": 181
2026-06-15T15:10:07.8494348Z             }
2026-06-15T15:10:07.8494453Z           ]
2026-06-15T15:10:07.8494552Z         },
2026-06-15T15:10:07.8494653Z         "int": {
2026-06-15T15:10:07.8494777Z           "complete": true,
2026-06-15T15:10:07.8494890Z           "evidence": [
2026-06-15T15:10:07.8494995Z             {
2026-06-15T15:10:07.8495155Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.8495259Z               "line": 252
2026-06-15T15:10:07.8495374Z             },
2026-06-15T15:10:07.8495474Z             {
2026-06-15T15:10:07.8495617Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.8495732Z               "line": 279
2026-06-15T15:10:07.8495831Z             },
2026-06-15T15:10:07.8495931Z             {
2026-06-15T15:10:07.8496075Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.8496309Z               "line": 404
2026-06-15T15:10:07.8496413Z             }
2026-06-15T15:10:07.8496498Z           ]
2026-06-15T15:10:07.8496605Z         },
2026-06-15T15:10:07.8496709Z         "unit": {
2026-06-15T15:10:07.8496823Z           "complete": true,
2026-06-15T15:10:07.8496929Z           "evidence": [
2026-06-15T15:10:07.8497033Z             {
2026-06-15T15:10:07.8497176Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.8497282Z               "line": 1098
2026-06-15T15:10:07.8497385Z             },
2026-06-15T15:10:07.8497481Z             {
2026-06-15T15:10:07.8497686Z               "path": "crates/spt/src/rc.rs",
2026-06-15T15:10:07.8497795Z               "line": 421
2026-06-15T15:10:07.8497900Z             },
2026-06-15T15:10:07.8498010Z             {
2026-06-15T15:10:07.8498133Z               "path": "crates/spt/src/rc.rs",
2026-06-15T15:10:07.8498253Z               "line": 450
2026-06-15T15:10:07.8498358Z             },
2026-06-15T15:10:07.8498467Z             {
2026-06-15T15:10:07.8498587Z               "path": "crates/spt/src/rc.rs",
2026-06-15T15:10:07.8498691Z               "line": 463
2026-06-15T15:10:07.8498796Z             }
2026-06-15T15:10:07.8498893Z           ]
2026-06-15T15:10:07.8499072Z         }
2026-06-15T15:10:07.8499174Z       }
2026-06-15T15:10:07.8499278Z     },
2026-06-15T15:10:07.8499373Z     {
2026-06-15T15:10:07.8499489Z       "id": "REQ-RCVIEW-1",
2026-06-15T15:10:07.8504040Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-15T15:10:07.8504196Z       "requiredStages": [
2026-06-15T15:10:07.8504303Z         "doc",
2026-06-15T15:10:07.8504402Z         "impl",
2026-06-15T15:10:07.8504502Z         "unit",
2026-06-15T15:10:07.8504603Z         "int"
2026-06-15T15:10:07.8504703Z       ],
2026-06-15T15:10:07.8504817Z       "stages": {
2026-06-15T15:10:07.8504918Z         "doc": {
2026-06-15T15:10:07.8505036Z           "complete": true,
2026-06-15T15:10:07.8505146Z           "evidence": [
2026-06-15T15:10:07.8505247Z             {
2026-06-15T15:10:07.8505365Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.8505469Z               "line": 322
2026-06-15T15:10:07.8505574Z             }
2026-06-15T15:10:07.8505678Z           ]
2026-06-15T15:10:07.8505781Z         },
2026-06-15T15:10:07.8505886Z         "impl": {
2026-06-15T15:10:07.8506007Z           "complete": true,
2026-06-15T15:10:07.8506114Z           "evidence": [
2026-06-15T15:10:07.8506220Z             {
2026-06-15T15:10:07.8506373Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T15:10:07.8506592Z               "line": 323
2026-06-15T15:10:07.8506693Z             },
2026-06-15T15:10:07.8506792Z             {
2026-06-15T15:10:07.8506945Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.8507045Z               "line": 430
2026-06-15T15:10:07.8507150Z             },
2026-06-15T15:10:07.8507250Z             {
2026-06-15T15:10:07.8507392Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.8507508Z               "line": 441
2026-06-15T15:10:07.8507607Z             },
2026-06-15T15:10:07.8507717Z             {
2026-06-15T15:10:07.8507866Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T15:10:07.8508080Z               "line": 41
2026-06-15T15:10:07.8508181Z             },
2026-06-15T15:10:07.8508279Z             {
2026-06-15T15:10:07.8508431Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T15:10:07.8508527Z               "line": 62
2026-06-15T15:10:07.8508627Z             },
2026-06-15T15:10:07.8508731Z             {
2026-06-15T15:10:07.8508875Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.8509090Z               "line": 255
2026-06-15T15:10:07.8509185Z             },
2026-06-15T15:10:07.8509289Z             {
2026-06-15T15:10:07.8509419Z               "path": "crates/spt/src/rc.rs",
2026-06-15T15:10:07.8509533Z               "line": 181
2026-06-15T15:10:07.8509632Z             }
2026-06-15T15:10:07.8509743Z           ]
2026-06-15T15:10:07.8509842Z         },
2026-06-15T15:10:07.8509947Z         "int": {
2026-06-15T15:10:07.8510068Z           "complete": true,
2026-06-15T15:10:07.8510176Z           "evidence": [
2026-06-15T15:10:07.8510296Z             {
2026-06-15T15:10:07.8510444Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.8510548Z               "line": 789
2026-06-15T15:10:07.8510652Z             },
2026-06-15T15:10:07.8510762Z             {
2026-06-15T15:10:07.8510903Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.8511017Z               "line": 829
2026-06-15T15:10:07.8511123Z             },
2026-06-15T15:10:07.8511227Z             {
2026-06-15T15:10:07.8511375Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.8511489Z               "line": 876
2026-06-15T15:10:07.8511593Z             },
2026-06-15T15:10:07.8511695Z             {
2026-06-15T15:10:07.8511842Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.8511957Z               "line": 988
2026-06-15T15:10:07.8512052Z             }
2026-06-15T15:10:07.8512152Z           ]
2026-06-15T15:10:07.8512257Z         },
2026-06-15T15:10:07.8512362Z         "unit": {
2026-06-15T15:10:07.8512481Z           "complete": true,
2026-06-15T15:10:07.8512591Z           "evidence": [
2026-06-15T15:10:07.8512696Z             {
2026-06-15T15:10:07.8512834Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T15:10:07.8512935Z               "line": 175
2026-06-15T15:10:07.8513053Z             },
2026-06-15T15:10:07.8513144Z             {
2026-06-15T15:10:07.8513284Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T15:10:07.8513386Z               "line": 195
2026-06-15T15:10:07.8513485Z             }
2026-06-15T15:10:07.8513586Z           ]
2026-06-15T15:10:07.8513689Z         }
2026-06-15T15:10:07.8513793Z       }
2026-06-15T15:10:07.8513894Z     },
2026-06-15T15:10:07.8513995Z     {
2026-06-15T15:10:07.8514113Z       "id": "REQ-REACH-1",
2026-06-15T15:10:07.8514300Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-15T15:10:07.8514423Z       "requiredStages": [
2026-06-15T15:10:07.8514524Z         "impl",
2026-06-15T15:10:07.8514704Z         "unit",
2026-06-15T15:10:07.8514805Z         "int"
2026-06-15T15:10:07.8514910Z       ],
2026-06-15T15:10:07.8515015Z       "stages": {
2026-06-15T15:10:07.8515114Z         "doc": {
2026-06-15T15:10:07.8515229Z           "complete": false,
2026-06-15T15:10:07.8515333Z           "evidence": []
2026-06-15T15:10:07.8515554Z         },
2026-06-15T15:10:07.8515658Z         "impl": {
2026-06-15T15:10:07.8515764Z           "complete": true,
2026-06-15T15:10:07.8515878Z           "evidence": [
2026-06-15T15:10:07.8515986Z             {
2026-06-15T15:10:07.8516144Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.8516247Z               "line": 430
2026-06-15T15:10:07.8516355Z             },
2026-06-15T15:10:07.8516461Z             {
2026-06-15T15:10:07.8516604Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T15:10:07.8516713Z               "line": 76
2026-06-15T15:10:07.8516819Z             },
2026-06-15T15:10:07.8516928Z             {
2026-06-15T15:10:07.8517162Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T15:10:07.8517281Z               "line": 222
2026-06-15T15:10:07.8517381Z             },
2026-06-15T15:10:07.8517486Z             {
2026-06-15T15:10:07.8517624Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T15:10:07.8517739Z               "line": 422
2026-06-15T15:10:07.8517839Z             },
2026-06-15T15:10:07.8517939Z             {
2026-06-15T15:10:07.8518087Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T15:10:07.8518186Z               "line": 529
2026-06-15T15:10:07.8518282Z             },
2026-06-15T15:10:07.8518383Z             {
2026-06-15T15:10:07.8518529Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T15:10:07.8518645Z               "line": 39
2026-06-15T15:10:07.8518751Z             },
2026-06-15T15:10:07.8518853Z             {
2026-06-15T15:10:07.8519069Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.8519182Z               "line": 239
2026-06-15T15:10:07.8519306Z             },
2026-06-15T15:10:07.8519416Z             {
2026-06-15T15:10:07.8519558Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T15:10:07.8519669Z               "line": 88
2026-06-15T15:10:07.8519764Z             },
2026-06-15T15:10:07.8519868Z             {
2026-06-15T15:10:07.8520013Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T15:10:07.8520122Z               "line": 98
2026-06-15T15:10:07.8520222Z             },
2026-06-15T15:10:07.8520328Z             {
2026-06-15T15:10:07.8520475Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8520590Z               "line": 229
2026-06-15T15:10:07.8520690Z             }
2026-06-15T15:10:07.8520794Z           ]
2026-06-15T15:10:07.8520894Z         },
2026-06-15T15:10:07.8521009Z         "int": {
2026-06-15T15:10:07.8521132Z           "complete": true,
2026-06-15T15:10:07.8521232Z           "evidence": [
2026-06-15T15:10:07.8521336Z             {
2026-06-15T15:10:07.8521501Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T15:10:07.8521606Z               "line": 415
2026-06-15T15:10:07.8521702Z             },
2026-06-15T15:10:07.8521806Z             {
2026-06-15T15:10:07.8521959Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T15:10:07.8522068Z               "line": 516
2026-06-15T15:10:07.8522168Z             },
2026-06-15T15:10:07.8522269Z             {
2026-06-15T15:10:07.8522421Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8522522Z               "line": 904
2026-06-15T15:10:07.8522631Z             },
2026-06-15T15:10:07.8522731Z             {
2026-06-15T15:10:07.8522875Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8522984Z               "line": 1199
2026-06-15T15:10:07.8523094Z             }
2026-06-15T15:10:07.8523190Z           ]
2026-06-15T15:10:07.8523294Z         },
2026-06-15T15:10:07.8523394Z         "unit": {
2026-06-15T15:10:07.8523520Z           "complete": true,
2026-06-15T15:10:07.8523622Z           "evidence": [
2026-06-15T15:10:07.8523728Z             {
2026-06-15T15:10:07.8523872Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T15:10:07.8523984Z               "line": 639
2026-06-15T15:10:07.8524089Z             },
2026-06-15T15:10:07.8524306Z             {
2026-06-15T15:10:07.8524454Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T15:10:07.8524560Z               "line": 660
2026-06-15T15:10:07.8524659Z             },
2026-06-15T15:10:07.8524759Z             {
2026-06-15T15:10:07.8524907Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T15:10:07.8525030Z               "line": 646
2026-06-15T15:10:07.8525132Z             },
2026-06-15T15:10:07.8525241Z             {
2026-06-15T15:10:07.8525389Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T15:10:07.8525489Z               "line": 93
2026-06-15T15:10:07.8525589Z             },
2026-06-15T15:10:07.8525794Z             {
2026-06-15T15:10:07.8525942Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T15:10:07.8526053Z               "line": 224
2026-06-15T15:10:07.8526156Z             },
2026-06-15T15:10:07.8526266Z             {
2026-06-15T15:10:07.8526410Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T15:10:07.8526518Z               "line": 96
2026-06-15T15:10:07.8526632Z             },
2026-06-15T15:10:07.8526741Z             {
2026-06-15T15:10:07.8526883Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T15:10:07.8526997Z               "line": 146
2026-06-15T15:10:07.8527088Z             },
2026-06-15T15:10:07.8527193Z             {
2026-06-15T15:10:07.8527326Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.8527431Z               "line": 529
2026-06-15T15:10:07.8527540Z             },
2026-06-15T15:10:07.8527641Z             {
2026-06-15T15:10:07.8527789Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T15:10:07.8527902Z               "line": 118
2026-06-15T15:10:07.8528013Z             },
2026-06-15T15:10:07.8528112Z             {
2026-06-15T15:10:07.8528256Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T15:10:07.8528370Z               "line": 148
2026-06-15T15:10:07.8528471Z             },
2026-06-15T15:10:07.8528590Z             {
2026-06-15T15:10:07.8528728Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8528847Z               "line": 804
2026-06-15T15:10:07.8529038Z             }
2026-06-15T15:10:07.8529138Z           ]
2026-06-15T15:10:07.8529239Z         }
2026-06-15T15:10:07.8529343Z       }
2026-06-15T15:10:07.8529442Z     },
2026-06-15T15:10:07.8529542Z     {
2026-06-15T15:10:07.8532690Z       "id": "REQ-REACH-2",
2026-06-15T15:10:07.8532925Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-15T15:10:07.8533053Z       "requiredStages": [],
2026-06-15T15:10:07.8533154Z       "stages": {
2026-06-15T15:10:07.8533258Z         "doc": {
2026-06-15T15:10:07.8533392Z           "complete": false,
2026-06-15T15:10:07.8533506Z           "evidence": []
2026-06-15T15:10:07.8533610Z         },
2026-06-15T15:10:07.8533712Z         "impl": {
2026-06-15T15:10:07.8533835Z           "complete": false,
2026-06-15T15:10:07.8533939Z           "evidence": []
2026-06-15T15:10:07.8534050Z         },
2026-06-15T15:10:07.8534159Z         "int": {
2026-06-15T15:10:07.8534269Z           "complete": false,
2026-06-15T15:10:07.8534380Z           "evidence": []
2026-06-15T15:10:07.8534483Z         },
2026-06-15T15:10:07.8534592Z         "unit": {
2026-06-15T15:10:07.8534702Z           "complete": false,
2026-06-15T15:10:07.8534810Z           "evidence": []
2026-06-15T15:10:07.8534909Z         }
2026-06-15T15:10:07.8535009Z       }
2026-06-15T15:10:07.8535110Z     },
2026-06-15T15:10:07.8535209Z     {
2026-06-15T15:10:07.8535324Z       "id": "REQ-REL-1",
2026-06-15T15:10:07.8535744Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-15T15:10:07.8535872Z       "requiredStages": [
2026-06-15T15:10:07.8535983Z         "doc",
2026-06-15T15:10:07.8536092Z         "impl"
2026-06-15T15:10:07.8536187Z       ],
2026-06-15T15:10:07.8536288Z       "stages": {
2026-06-15T15:10:07.8536387Z         "doc": {
2026-06-15T15:10:07.8536641Z           "complete": true,
2026-06-15T15:10:07.8536749Z           "evidence": [
2026-06-15T15:10:07.8536845Z             {
2026-06-15T15:10:07.8537097Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-15T15:10:07.8537216Z               "line": 3
2026-06-15T15:10:07.8537320Z             }
2026-06-15T15:10:07.8537428Z           ]
2026-06-15T15:10:07.8537533Z         },
2026-06-15T15:10:07.8537634Z         "impl": {
2026-06-15T15:10:07.8537753Z           "complete": true,
2026-06-15T15:10:07.8537858Z           "evidence": [
2026-06-15T15:10:07.8537958Z             {
2026-06-15T15:10:07.8538221Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T15:10:07.8538330Z               "line": 11
2026-06-15T15:10:07.8538429Z             },
2026-06-15T15:10:07.8538531Z             {
2026-06-15T15:10:07.8538673Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.8538777Z               "line": 265
2026-06-15T15:10:07.8538879Z             }
2026-06-15T15:10:07.8539049Z           ]
2026-06-15T15:10:07.8539150Z         },
2026-06-15T15:10:07.8539255Z         "int": {
2026-06-15T15:10:07.8539369Z           "complete": false,
2026-06-15T15:10:07.8539485Z           "evidence": []
2026-06-15T15:10:07.8539584Z         },
2026-06-15T15:10:07.8539693Z         "unit": {
2026-06-15T15:10:07.8539809Z           "complete": false,
2026-06-15T15:10:07.8539927Z           "evidence": []
2026-06-15T15:10:07.8540030Z         }
2026-06-15T15:10:07.8540131Z       }
2026-06-15T15:10:07.8540232Z     },
2026-06-15T15:10:07.8540326Z     {
2026-06-15T15:10:07.8540446Z       "id": "REQ-REL-2",
2026-06-15T15:10:07.8540975Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-15T15:10:07.8541100Z       "requiredStages": [
2026-06-15T15:10:07.8541204Z         "impl",
2026-06-15T15:10:07.8541308Z         "int"
2026-06-15T15:10:07.8541410Z       ],
2026-06-15T15:10:07.8541519Z       "stages": {
2026-06-15T15:10:07.8541614Z         "doc": {
2026-06-15T15:10:07.8541735Z           "complete": true,
2026-06-15T15:10:07.8541838Z           "evidence": [
2026-06-15T15:10:07.8541943Z             {
2026-06-15T15:10:07.8542082Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-15T15:10:07.8542181Z               "line": 6
2026-06-15T15:10:07.8542280Z             }
2026-06-15T15:10:07.8542385Z           ]
2026-06-15T15:10:07.8542489Z         },
2026-06-15T15:10:07.8542588Z         "impl": {
2026-06-15T15:10:07.8542703Z           "complete": true,
2026-06-15T15:10:07.8542823Z           "evidence": [
2026-06-15T15:10:07.8542926Z             {
2026-06-15T15:10:07.8543071Z               "path": ".github/workflows/release.yml",
2026-06-15T15:10:07.8543184Z               "line": 16
2026-06-15T15:10:07.8543284Z             },
2026-06-15T15:10:07.8543385Z             {
2026-06-15T15:10:07.8543518Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.8543628Z               "line": 352
2026-06-15T15:10:07.8543733Z             },
2026-06-15T15:10:07.8543837Z             {
2026-06-15T15:10:07.8543976Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.8544094Z               "line": 426
2026-06-15T15:10:07.8544190Z             },
2026-06-15T15:10:07.8544291Z             {
2026-06-15T15:10:07.8544409Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.8544519Z               "line": 588
2026-06-15T15:10:07.8544620Z             },
2026-06-15T15:10:07.8544715Z             {
2026-06-15T15:10:07.8544848Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.8544964Z               "line": 720
2026-06-15T15:10:07.8545063Z             }
2026-06-15T15:10:07.8545166Z           ]
2026-06-15T15:10:07.8545257Z         },
2026-06-15T15:10:07.8545356Z         "int": {
2026-06-15T15:10:07.8545474Z           "complete": true,
2026-06-15T15:10:07.8545579Z           "evidence": [
2026-06-15T15:10:07.8545788Z             {
2026-06-15T15:10:07.8545952Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-15T15:10:07.8546061Z               "line": 13
2026-06-15T15:10:07.8546170Z             }
2026-06-15T15:10:07.8546271Z           ]
2026-06-15T15:10:07.8546366Z         },
2026-06-15T15:10:07.8546466Z         "unit": {
2026-06-15T15:10:07.8546577Z           "complete": false,
2026-06-15T15:10:07.8546686Z           "evidence": []
2026-06-15T15:10:07.8546786Z         }
2026-06-15T15:10:07.8546887Z       }
2026-06-15T15:10:07.8546985Z     },
2026-06-15T15:10:07.8547091Z     {
2026-06-15T15:10:07.8547211Z       "id": "REQ-REL-3",
2026-06-15T15:10:07.8547786Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-15T15:10:07.8547904Z       "requiredStages": [
2026-06-15T15:10:07.8548008Z         "impl",
2026-06-15T15:10:07.8548126Z         "unit"
2026-06-15T15:10:07.8548233Z       ],
2026-06-15T15:10:07.8548336Z       "stages": {
2026-06-15T15:10:07.8548437Z         "doc": {
2026-06-15T15:10:07.8548542Z           "complete": false,
2026-06-15T15:10:07.8548646Z           "evidence": []
2026-06-15T15:10:07.8548742Z         },
2026-06-15T15:10:07.8548842Z         "impl": {
2026-06-15T15:10:07.8549013Z           "complete": true,
2026-06-15T15:10:07.8549110Z           "evidence": [
2026-06-15T15:10:07.8549219Z             {
2026-06-15T15:10:07.8549366Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8549481Z               "line": 237
2026-06-15T15:10:07.8549586Z             },
2026-06-15T15:10:07.8549696Z             {
2026-06-15T15:10:07.8549838Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8549948Z               "line": 289
2026-06-15T15:10:07.8550054Z             },
2026-06-15T15:10:07.8550148Z             {
2026-06-15T15:10:07.8550282Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.8550388Z               "line": 329
2026-06-15T15:10:07.8550491Z             },
2026-06-15T15:10:07.8550591Z             {
2026-06-15T15:10:07.8550725Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.8550830Z               "line": 353
2026-06-15T15:10:07.8550929Z             },
2026-06-15T15:10:07.8551030Z             {
2026-06-15T15:10:07.8551154Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.8551267Z               "line": 394
2026-06-15T15:10:07.8551359Z             }
2026-06-15T15:10:07.8551464Z           ]
2026-06-15T15:10:07.8551563Z         },
2026-06-15T15:10:07.8551665Z         "int": {
2026-06-15T15:10:07.8551797Z           "complete": false,
2026-06-15T15:10:07.8551906Z           "evidence": []
2026-06-15T15:10:07.8552013Z         },
2026-06-15T15:10:07.8552112Z         "unit": {
2026-06-15T15:10:07.8552231Z           "complete": true,
2026-06-15T15:10:07.8552342Z           "evidence": [
2026-06-15T15:10:07.8552446Z             {
2026-06-15T15:10:07.8552604Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8552709Z               "line": 992
2026-06-15T15:10:07.8552807Z             },
2026-06-15T15:10:07.8552902Z             {
2026-06-15T15:10:07.8553049Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8553162Z               "line": 1051
2026-06-15T15:10:07.8553263Z             }
2026-06-15T15:10:07.8553364Z           ]
2026-06-15T15:10:07.8553467Z         }
2026-06-15T15:10:07.8553568Z       }
2026-06-15T15:10:07.8553668Z     },
2026-06-15T15:10:07.8553768Z     {
2026-06-15T15:10:07.8553893Z       "id": "REQ-RUN-PICKER",
2026-06-15T15:10:07.8558826Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-15T15:10:07.8559220Z       "requiredStages": [
2026-06-15T15:10:07.8559331Z         "doc",
2026-06-15T15:10:07.8559436Z         "impl",
2026-06-15T15:10:07.8559535Z         "unit"
2026-06-15T15:10:07.8559636Z       ],
2026-06-15T15:10:07.8559741Z       "stages": {
2026-06-15T15:10:07.8559840Z         "doc": {
2026-06-15T15:10:07.8559961Z           "complete": true,
2026-06-15T15:10:07.8560070Z           "evidence": [
2026-06-15T15:10:07.8560184Z             {
2026-06-15T15:10:07.8560314Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.8560422Z               "line": 326
2026-06-15T15:10:07.8560508Z             }
2026-06-15T15:10:07.8560614Z           ]
2026-06-15T15:10:07.8560718Z         },
2026-06-15T15:10:07.8560818Z         "impl": {
2026-06-15T15:10:07.8560944Z           "complete": true,
2026-06-15T15:10:07.8561047Z           "evidence": [
2026-06-15T15:10:07.8561151Z             {
2026-06-15T15:10:07.8561290Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8561399Z               "line": 867
2026-06-15T15:10:07.8561498Z             },
2026-06-15T15:10:07.8561605Z             {
2026-06-15T15:10:07.8561737Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8561852Z               "line": 877
2026-06-15T15:10:07.8561953Z             },
2026-06-15T15:10:07.8562057Z             {
2026-06-15T15:10:07.8562196Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T15:10:07.8562305Z               "line": 9
2026-06-15T15:10:07.8562405Z             },
2026-06-15T15:10:07.8562506Z             {
2026-06-15T15:10:07.8562648Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T15:10:07.8562753Z               "line": 67
2026-06-15T15:10:07.8562855Z             },
2026-06-15T15:10:07.8562958Z             {
2026-06-15T15:10:07.8563096Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T15:10:07.8563198Z               "line": 16
2026-06-15T15:10:07.8563301Z             },
2026-06-15T15:10:07.8563400Z             {
2026-06-15T15:10:07.8563539Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T15:10:07.8563646Z               "line": 249
2026-06-15T15:10:07.8563751Z             },
2026-06-15T15:10:07.8563851Z             {
2026-06-15T15:10:07.8563990Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8564090Z               "line": 11
2026-06-15T15:10:07.8564186Z             },
2026-06-15T15:10:07.8564280Z             {
2026-06-15T15:10:07.8564423Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8564534Z               "line": 85
2026-06-15T15:10:07.8564638Z             },
2026-06-15T15:10:07.8564734Z             {
2026-06-15T15:10:07.8564872Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8564991Z               "line": 452
2026-06-15T15:10:07.8565182Z             },
2026-06-15T15:10:07.8565282Z             {
2026-06-15T15:10:07.8565426Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8565535Z               "line": 533
2026-06-15T15:10:07.8565639Z             },
2026-06-15T15:10:07.8565741Z             {
2026-06-15T15:10:07.8565882Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8565983Z               "line": 586
2026-06-15T15:10:07.8566089Z             },
2026-06-15T15:10:07.8566183Z             {
2026-06-15T15:10:07.8566334Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T15:10:07.8566444Z               "line": 8
2026-06-15T15:10:07.8566642Z             }
2026-06-15T15:10:07.8566738Z           ]
2026-06-15T15:10:07.8566833Z         },
2026-06-15T15:10:07.8566937Z         "int": {
2026-06-15T15:10:07.8567043Z           "complete": false,
2026-06-15T15:10:07.8567162Z           "evidence": []
2026-06-15T15:10:07.8567266Z         },
2026-06-15T15:10:07.8567368Z         "unit": {
2026-06-15T15:10:07.8567487Z           "complete": true,
2026-06-15T15:10:07.8567586Z           "evidence": [
2026-06-15T15:10:07.8567701Z             {
2026-06-15T15:10:07.8567825Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8567944Z               "line": 6242
2026-06-15T15:10:07.8568040Z             },
2026-06-15T15:10:07.8568129Z             {
2026-06-15T15:10:07.8568259Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8568360Z               "line": 6253
2026-06-15T15:10:07.8568458Z             },
2026-06-15T15:10:07.8568560Z             {
2026-06-15T15:10:07.8568703Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8568825Z               "line": 737
2026-06-15T15:10:07.8568930Z             },
2026-06-15T15:10:07.8569118Z             {
2026-06-15T15:10:07.8569261Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8569372Z               "line": 744
2026-06-15T15:10:07.8569466Z             },
2026-06-15T15:10:07.8569572Z             {
2026-06-15T15:10:07.8569711Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8569809Z               "line": 761
2026-06-15T15:10:07.8569911Z             },
2026-06-15T15:10:07.8570015Z             {
2026-06-15T15:10:07.8570153Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8570268Z               "line": 781
2026-06-15T15:10:07.8570373Z             },
2026-06-15T15:10:07.8570477Z             {
2026-06-15T15:10:07.8570611Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8570720Z               "line": 795
2026-06-15T15:10:07.8570831Z             },
2026-06-15T15:10:07.8570936Z             {
2026-06-15T15:10:07.8571073Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8571174Z               "line": 804
2026-06-15T15:10:07.8571283Z             },
2026-06-15T15:10:07.8571383Z             {
2026-06-15T15:10:07.8571518Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8571626Z               "line": 815
2026-06-15T15:10:07.8571730Z             },
2026-06-15T15:10:07.8571831Z             {
2026-06-15T15:10:07.8571973Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8572087Z               "line": 837
2026-06-15T15:10:07.8572184Z             },
2026-06-15T15:10:07.8572284Z             {
2026-06-15T15:10:07.8572422Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8572536Z               "line": 856
2026-06-15T15:10:07.8572636Z             },
2026-06-15T15:10:07.8572732Z             {
2026-06-15T15:10:07.8572875Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8572984Z               "line": 893
2026-06-15T15:10:07.8573085Z             },
2026-06-15T15:10:07.8573185Z             {
2026-06-15T15:10:07.8573328Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8573439Z               "line": 922
2026-06-15T15:10:07.8573637Z             },
2026-06-15T15:10:07.8573739Z             {
2026-06-15T15:10:07.8573880Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8573998Z               "line": 935
2026-06-15T15:10:07.8574099Z             },
2026-06-15T15:10:07.8574211Z             {
2026-06-15T15:10:07.8574354Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8574455Z               "line": 979
2026-06-15T15:10:07.8574555Z             },
2026-06-15T15:10:07.8574655Z             {
2026-06-15T15:10:07.8574798Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8574902Z               "line": 1006
2026-06-15T15:10:07.8575003Z             },
2026-06-15T15:10:07.8575207Z             {
2026-06-15T15:10:07.8575347Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T15:10:07.8575461Z               "line": 1022
2026-06-15T15:10:07.8575565Z             },
2026-06-15T15:10:07.8575667Z             {
2026-06-15T15:10:07.8575804Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T15:10:07.8575918Z               "line": 419
2026-06-15T15:10:07.8576033Z             },
2026-06-15T15:10:07.8576137Z             {
2026-06-15T15:10:07.8576277Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T15:10:07.8576390Z               "line": 431
2026-06-15T15:10:07.8576495Z             },
2026-06-15T15:10:07.8576596Z             {
2026-06-15T15:10:07.8576738Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T15:10:07.8576846Z               "line": 449
2026-06-15T15:10:07.8576947Z             },
2026-06-15T15:10:07.8577046Z             {
2026-06-15T15:10:07.8577183Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T15:10:07.8577298Z               "line": 471
2026-06-15T15:10:07.8577403Z             },
2026-06-15T15:10:07.8577507Z             {
2026-06-15T15:10:07.8577651Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T15:10:07.8577750Z               "line": 481
2026-06-15T15:10:07.8577856Z             },
2026-06-15T15:10:07.8577952Z             {
2026-06-15T15:10:07.8578094Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T15:10:07.8578204Z               "line": 504
2026-06-15T15:10:07.8578309Z             }
2026-06-15T15:10:07.8578409Z           ]
2026-06-15T15:10:07.8578514Z         }
2026-06-15T15:10:07.8578614Z       }
2026-06-15T15:10:07.8578714Z     },
2026-06-15T15:10:07.8578814Z     {
2026-06-15T15:10:07.8579033Z       "id": "REQ-RUN-SHORTCUT",
2026-06-15T15:10:07.8583717Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-15T15:10:07.8584003Z       "requiredStages": [
2026-06-15T15:10:07.8584111Z         "doc",
2026-06-15T15:10:07.8584212Z         "impl",
2026-06-15T15:10:07.8584318Z         "unit"
2026-06-15T15:10:07.8584421Z       ],
2026-06-15T15:10:07.8584521Z       "stages": {
2026-06-15T15:10:07.8584621Z         "doc": {
2026-06-15T15:10:07.8584729Z           "complete": true,
2026-06-15T15:10:07.8584843Z           "evidence": [
2026-06-15T15:10:07.8584948Z             {
2026-06-15T15:10:07.8585067Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.8585186Z               "line": 349
2026-06-15T15:10:07.8585392Z             }
2026-06-15T15:10:07.8585500Z           ]
2026-06-15T15:10:07.8585597Z         },
2026-06-15T15:10:07.8585697Z         "impl": {
2026-06-15T15:10:07.8585815Z           "complete": true,
2026-06-15T15:10:07.8585926Z           "evidence": [
2026-06-15T15:10:07.8586021Z             {
2026-06-15T15:10:07.8586183Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T15:10:07.8586302Z               "line": 39
2026-06-15T15:10:07.8586402Z             },
2026-06-15T15:10:07.8586513Z             {
2026-06-15T15:10:07.8586659Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T15:10:07.8586764Z               "line": 79
2026-06-15T15:10:07.8586866Z             },
2026-06-15T15:10:07.8586964Z             {
2026-06-15T15:10:07.8587113Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T15:10:07.8587224Z               "line": 162
2026-06-15T15:10:07.8587322Z             }
2026-06-15T15:10:07.8587426Z           ]
2026-06-15T15:10:07.8587536Z         },
2026-06-15T15:10:07.8587643Z         "int": {
2026-06-15T15:10:07.8587757Z           "complete": false,
2026-06-15T15:10:07.8587878Z           "evidence": []
2026-06-15T15:10:07.8587972Z         },
2026-06-15T15:10:07.8588086Z         "unit": {
2026-06-15T15:10:07.8588207Z           "complete": true,
2026-06-15T15:10:07.8588325Z           "evidence": [
2026-06-15T15:10:07.8588425Z             {
2026-06-15T15:10:07.8588564Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T15:10:07.8588678Z               "line": 206
2026-06-15T15:10:07.8588784Z             },
2026-06-15T15:10:07.8588883Z             {
2026-06-15T15:10:07.8589089Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T15:10:07.8589188Z               "line": 222
2026-06-15T15:10:07.8589288Z             },
2026-06-15T15:10:07.8589394Z             {
2026-06-15T15:10:07.8589531Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T15:10:07.8589646Z               "line": 238
2026-06-15T15:10:07.8589762Z             },
2026-06-15T15:10:07.8589860Z             {
2026-06-15T15:10:07.8590007Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T15:10:07.8590126Z               "line": 251
2026-06-15T15:10:07.8590229Z             },
2026-06-15T15:10:07.8590329Z             {
2026-06-15T15:10:07.8590478Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T15:10:07.8590595Z               "line": 258
2026-06-15T15:10:07.8590692Z             }
2026-06-15T15:10:07.8590797Z           ]
2026-06-15T15:10:07.8590906Z         }
2026-06-15T15:10:07.8591002Z       }
2026-06-15T15:10:07.8591102Z     },
2026-06-15T15:10:07.8591206Z     {
2026-06-15T15:10:07.8591327Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-15T15:10:07.8591540Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-15T15:10:07.8591651Z       "requiredStages": [
2026-06-15T15:10:07.8591760Z         "impl",
2026-06-15T15:10:07.8591865Z         "unit"
2026-06-15T15:10:07.8591980Z       ],
2026-06-15T15:10:07.8592079Z       "stages": {
2026-06-15T15:10:07.8592179Z         "doc": {
2026-06-15T15:10:07.8592300Z           "complete": false,
2026-06-15T15:10:07.8592408Z           "evidence": []
2026-06-15T15:10:07.8592518Z         },
2026-06-15T15:10:07.8592620Z         "impl": {
2026-06-15T15:10:07.8592850Z           "complete": true,
2026-06-15T15:10:07.8592955Z           "evidence": [
2026-06-15T15:10:07.8593066Z             {
2026-06-15T15:10:07.8593208Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.8593319Z               "line": 18
2026-06-15T15:10:07.8593418Z             },
2026-06-15T15:10:07.8593523Z             {
2026-06-15T15:10:07.8593671Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.8593775Z               "line": 35
2026-06-15T15:10:07.8593876Z             },
2026-06-15T15:10:07.8593991Z             {
2026-06-15T15:10:07.8594123Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.8594333Z               "line": 72
2026-06-15T15:10:07.8594438Z             }
2026-06-15T15:10:07.8594539Z           ]
2026-06-15T15:10:07.8594639Z         },
2026-06-15T15:10:07.8594739Z         "int": {
2026-06-15T15:10:07.8594859Z           "complete": false,
2026-06-15T15:10:07.8594963Z           "evidence": []
2026-06-15T15:10:07.8595072Z         },
2026-06-15T15:10:07.8595176Z         "unit": {
2026-06-15T15:10:07.8595299Z           "complete": true,
2026-06-15T15:10:07.8595398Z           "evidence": [
2026-06-15T15:10:07.8595498Z             {
2026-06-15T15:10:07.8595637Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.8595751Z               "line": 239
2026-06-15T15:10:07.8595852Z             },
2026-06-15T15:10:07.8595957Z             {
2026-06-15T15:10:07.8596099Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.8596209Z               "line": 256
2026-06-15T15:10:07.8596309Z             },
2026-06-15T15:10:07.8596409Z             {
2026-06-15T15:10:07.8596557Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.8596671Z               "line": 265
2026-06-15T15:10:07.8596772Z             }
2026-06-15T15:10:07.8596881Z           ]
2026-06-15T15:10:07.8596986Z         }
2026-06-15T15:10:07.8597092Z       }
2026-06-15T15:10:07.8597196Z     },
2026-06-15T15:10:07.8597300Z     {
2026-06-15T15:10:07.8597431Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-15T15:10:07.8597606Z       "title": "Hostable endpoint-types capability declaration",
2026-06-15T15:10:07.8597726Z       "requiredStages": [
2026-06-15T15:10:07.8597830Z         "impl",
2026-06-15T15:10:07.8597939Z         "unit"
2026-06-15T15:10:07.8598039Z       ],
2026-06-15T15:10:07.8598143Z       "stages": {
2026-06-15T15:10:07.8598256Z         "doc": {
2026-06-15T15:10:07.8598361Z           "complete": false,
2026-06-15T15:10:07.8598466Z           "evidence": []
2026-06-15T15:10:07.8598561Z         },
2026-06-15T15:10:07.8598671Z         "impl": {
2026-06-15T15:10:07.8598800Z           "complete": true,
2026-06-15T15:10:07.8598909Z           "evidence": [
2026-06-15T15:10:07.8599067Z             {
2026-06-15T15:10:07.8599214Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8599319Z               "line": 474
2026-06-15T15:10:07.8599419Z             }
2026-06-15T15:10:07.8599543Z           ]
2026-06-15T15:10:07.8599644Z         },
2026-06-15T15:10:07.8599748Z         "int": {
2026-06-15T15:10:07.8599867Z           "complete": false,
2026-06-15T15:10:07.8599983Z           "evidence": []
2026-06-15T15:10:07.8600087Z         },
2026-06-15T15:10:07.8600182Z         "unit": {
2026-06-15T15:10:07.8600308Z           "complete": true,
2026-06-15T15:10:07.8600420Z           "evidence": [
2026-06-15T15:10:07.8600519Z             {
2026-06-15T15:10:07.8600663Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8600765Z               "line": 843
2026-06-15T15:10:07.8600870Z             }
2026-06-15T15:10:07.8600971Z           ]
2026-06-15T15:10:07.8601090Z         }
2026-06-15T15:10:07.8601199Z       }
2026-06-15T15:10:07.8601300Z     },
2026-06-15T15:10:07.8601400Z     {
2026-06-15T15:10:07.8601523Z       "id": "REQ-SEAM-HISTORY",
2026-06-15T15:10:07.8601734Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-15T15:10:07.8601967Z       "requiredStages": [
2026-06-15T15:10:07.8602072Z         "impl",
2026-06-15T15:10:07.8602182Z         "unit",
2026-06-15T15:10:07.8602268Z         "int"
2026-06-15T15:10:07.8602363Z       ],
2026-06-15T15:10:07.8602467Z       "stages": {
2026-06-15T15:10:07.8602578Z         "doc": {
2026-06-15T15:10:07.8602687Z           "complete": false,
2026-06-15T15:10:07.8602807Z           "evidence": []
2026-06-15T15:10:07.8602907Z         },
2026-06-15T15:10:07.8603011Z         "impl": {
2026-06-15T15:10:07.8603131Z           "complete": true,
2026-06-15T15:10:07.8603241Z           "evidence": [
2026-06-15T15:10:07.8603344Z             {
2026-06-15T15:10:07.8603487Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T15:10:07.8603706Z               "line": 24
2026-06-15T15:10:07.8603812Z             },
2026-06-15T15:10:07.8603917Z             {
2026-06-15T15:10:07.8604054Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T15:10:07.8604160Z               "line": 22
2026-06-15T15:10:07.8604270Z             }
2026-06-15T15:10:07.8604368Z           ]
2026-06-15T15:10:07.8604479Z         },
2026-06-15T15:10:07.8604584Z         "int": {
2026-06-15T15:10:07.8604698Z           "complete": true,
2026-06-15T15:10:07.8604799Z           "evidence": [
2026-06-15T15:10:07.8604903Z             {
2026-06-15T15:10:07.8605056Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T15:10:07.8605161Z               "line": 260
2026-06-15T15:10:07.8605260Z             }
2026-06-15T15:10:07.8605371Z           ]
2026-06-15T15:10:07.8605472Z         },
2026-06-15T15:10:07.8605575Z         "unit": {
2026-06-15T15:10:07.8605679Z           "complete": true,
2026-06-15T15:10:07.8605803Z           "evidence": [
2026-06-15T15:10:07.8605901Z             {
2026-06-15T15:10:07.8606049Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T15:10:07.8606165Z               "line": 171
2026-06-15T15:10:07.8606268Z             },
2026-06-15T15:10:07.8606378Z             {
2026-06-15T15:10:07.8606526Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T15:10:07.8606640Z               "line": 200
2026-06-15T15:10:07.8606741Z             },
2026-06-15T15:10:07.8606841Z             {
2026-06-15T15:10:07.8606979Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T15:10:07.8607080Z               "line": 220
2026-06-15T15:10:07.8607184Z             },
2026-06-15T15:10:07.8607288Z             {
2026-06-15T15:10:07.8607437Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T15:10:07.8607536Z               "line": 199
2026-06-15T15:10:07.8607647Z             },
2026-06-15T15:10:07.8607752Z             {
2026-06-15T15:10:07.8607889Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T15:10:07.8608010Z               "line": 219
2026-06-15T15:10:07.8608113Z             },
2026-06-15T15:10:07.8608214Z             {
2026-06-15T15:10:07.8608358Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T15:10:07.8608465Z               "line": 244
2026-06-15T15:10:07.8608575Z             },
2026-06-15T15:10:07.8608680Z             {
2026-06-15T15:10:07.8608820Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T15:10:07.8608921Z               "line": 276
2026-06-15T15:10:07.8609102Z             },
2026-06-15T15:10:07.8609206Z             {
2026-06-15T15:10:07.8609345Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T15:10:07.8609469Z               "line": 297
2026-06-15T15:10:07.8609570Z             },
2026-06-15T15:10:07.8609665Z             {
2026-06-15T15:10:07.8609812Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T15:10:07.8609928Z               "line": 324
2026-06-15T15:10:07.8610027Z             }
2026-06-15T15:10:07.8610132Z           ]
2026-06-15T15:10:07.8610229Z         }
2026-06-15T15:10:07.8610332Z       }
2026-06-15T15:10:07.8610437Z     },
2026-06-15T15:10:07.8610538Z     {
2026-06-15T15:10:07.8610656Z       "id": "REQ-SEAM-INJECT",
2026-06-15T15:10:07.8610848Z       "title": "inject-input methods configurable per activity-state",
2026-06-15T15:10:07.8611070Z       "requiredStages": [
2026-06-15T15:10:07.8611190Z         "impl",
2026-06-15T15:10:07.8611288Z         "unit"
2026-06-15T15:10:07.8611392Z       ],
2026-06-15T15:10:07.8611492Z       "stages": {
2026-06-15T15:10:07.8611589Z         "doc": {
2026-06-15T15:10:07.8611712Z           "complete": false,
2026-06-15T15:10:07.8611822Z           "evidence": []
2026-06-15T15:10:07.8611917Z         },
2026-06-15T15:10:07.8612026Z         "impl": {
2026-06-15T15:10:07.8612142Z           "complete": true,
2026-06-15T15:10:07.8612246Z           "evidence": [
2026-06-15T15:10:07.8612355Z             {
2026-06-15T15:10:07.8612599Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.8612703Z               "line": 19
2026-06-15T15:10:07.8612800Z             },
2026-06-15T15:10:07.8612904Z             {
2026-06-15T15:10:07.8613047Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.8613148Z               "line": 111
2026-06-15T15:10:07.8613252Z             }
2026-06-15T15:10:07.8613352Z           ]
2026-06-15T15:10:07.8613458Z         },
2026-06-15T15:10:07.8613566Z         "int": {
2026-06-15T15:10:07.8613682Z           "complete": false,
2026-06-15T15:10:07.8613792Z           "evidence": []
2026-06-15T15:10:07.8613895Z         },
2026-06-15T15:10:07.8613999Z         "unit": {
2026-06-15T15:10:07.8614120Z           "complete": true,
2026-06-15T15:10:07.8614219Z           "evidence": [
2026-06-15T15:10:07.8614319Z             {
2026-06-15T15:10:07.8614458Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.8614572Z               "line": 345
2026-06-15T15:10:07.8614672Z             },
2026-06-15T15:10:07.8614782Z             {
2026-06-15T15:10:07.8614924Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.8615026Z               "line": 365
2026-06-15T15:10:07.8615130Z             }
2026-06-15T15:10:07.8615234Z           ]
2026-06-15T15:10:07.8615336Z         }
2026-06-15T15:10:07.8615440Z       }
2026-06-15T15:10:07.8615540Z     },
2026-06-15T15:10:07.8615646Z     {
2026-06-15T15:10:07.8615773Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-15T15:10:07.8615941Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-15T15:10:07.8616060Z       "requiredStages": [
2026-06-15T15:10:07.8616158Z         "impl",
2026-06-15T15:10:07.8616263Z         "unit"
2026-06-15T15:10:07.8616368Z       ],
2026-06-15T15:10:07.8616480Z       "stages": {
2026-06-15T15:10:07.8616585Z         "doc": {
2026-06-15T15:10:07.8616700Z           "complete": false,
2026-06-15T15:10:07.8616800Z           "evidence": []
2026-06-15T15:10:07.8616900Z         },
2026-06-15T15:10:07.8617015Z         "impl": {
2026-06-15T15:10:07.8617138Z           "complete": true,
2026-06-15T15:10:07.8617254Z           "evidence": [
2026-06-15T15:10:07.8617358Z             {
2026-06-15T15:10:07.8617495Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8617602Z               "line": 18
2026-06-15T15:10:07.8617711Z             },
2026-06-15T15:10:07.8617805Z             {
2026-06-15T15:10:07.8617950Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8618068Z               "line": 330
2026-06-15T15:10:07.8618173Z             }
2026-06-15T15:10:07.8621080Z           ]
2026-06-15T15:10:07.8621212Z         },
2026-06-15T15:10:07.8621326Z         "int": {
2026-06-15T15:10:07.8621442Z           "complete": false,
2026-06-15T15:10:07.8621559Z           "evidence": []
2026-06-15T15:10:07.8621659Z         },
2026-06-15T15:10:07.8621764Z         "unit": {
2026-06-15T15:10:07.8621876Z           "complete": true,
2026-06-15T15:10:07.8621985Z           "evidence": [
2026-06-15T15:10:07.8622091Z             {
2026-06-15T15:10:07.8622243Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8622367Z               "line": 604
2026-06-15T15:10:07.8622463Z             },
2026-06-15T15:10:07.8622562Z             {
2026-06-15T15:10:07.8622712Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8622963Z               "line": 614
2026-06-15T15:10:07.8623069Z             }
2026-06-15T15:10:07.8623169Z           ]
2026-06-15T15:10:07.8623278Z         }
2026-06-15T15:10:07.8623370Z       }
2026-06-15T15:10:07.8623474Z     },
2026-06-15T15:10:07.8623579Z     {
2026-06-15T15:10:07.8623708Z       "id": "REQ-SEAM-PSYCHE",
2026-06-15T15:10:07.8623893Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-15T15:10:07.8624009Z       "requiredStages": [
2026-06-15T15:10:07.8624112Z         "impl",
2026-06-15T15:10:07.8624218Z         "unit",
2026-06-15T15:10:07.8624319Z         "int"
2026-06-15T15:10:07.8624530Z       ],
2026-06-15T15:10:07.8624632Z       "stages": {
2026-06-15T15:10:07.8624723Z         "doc": {
2026-06-15T15:10:07.8624841Z           "complete": false,
2026-06-15T15:10:07.8624961Z           "evidence": []
2026-06-15T15:10:07.8625056Z         },
2026-06-15T15:10:07.8625170Z         "impl": {
2026-06-15T15:10:07.8625290Z           "complete": true,
2026-06-15T15:10:07.8625399Z           "evidence": [
2026-06-15T15:10:07.8625498Z             {
2026-06-15T15:10:07.8625637Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T15:10:07.8625752Z               "line": 19
2026-06-15T15:10:07.8625857Z             },
2026-06-15T15:10:07.8625962Z             {
2026-06-15T15:10:07.8626100Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T15:10:07.8626206Z               "line": 12
2026-06-15T15:10:07.8626305Z             },
2026-06-15T15:10:07.8626410Z             {
2026-06-15T15:10:07.8626554Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8626672Z               "line": 233
2026-06-15T15:10:07.8626771Z             }
2026-06-15T15:10:07.8626876Z           ]
2026-06-15T15:10:07.8626975Z         },
2026-06-15T15:10:07.8627074Z         "int": {
2026-06-15T15:10:07.8627189Z           "complete": true,
2026-06-15T15:10:07.8627304Z           "evidence": [
2026-06-15T15:10:07.8627407Z             {
2026-06-15T15:10:07.8627556Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T15:10:07.8627665Z               "line": 259
2026-06-15T15:10:07.8627765Z             }
2026-06-15T15:10:07.8627871Z           ]
2026-06-15T15:10:07.8627970Z         },
2026-06-15T15:10:07.8628075Z         "unit": {
2026-06-15T15:10:07.8628176Z           "complete": true,
2026-06-15T15:10:07.8628281Z           "evidence": [
2026-06-15T15:10:07.8628375Z             {
2026-06-15T15:10:07.8628519Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T15:10:07.8628619Z               "line": 161
2026-06-15T15:10:07.8628719Z             },
2026-06-15T15:10:07.8628815Z             {
2026-06-15T15:10:07.8629019Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T15:10:07.8629125Z               "line": 168
2026-06-15T15:10:07.8629224Z             },
2026-06-15T15:10:07.8629324Z             {
2026-06-15T15:10:07.8629464Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T15:10:07.8629586Z               "line": 191
2026-06-15T15:10:07.8629686Z             },
2026-06-15T15:10:07.8629791Z             {
2026-06-15T15:10:07.8629931Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T15:10:07.8630046Z               "line": 106
2026-06-15T15:10:07.8630142Z             },
2026-06-15T15:10:07.8630241Z             {
2026-06-15T15:10:07.8630380Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T15:10:07.8630495Z               "line": 137
2026-06-15T15:10:07.8630589Z             },
2026-06-15T15:10:07.8630686Z             {
2026-06-15T15:10:07.8630824Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T15:10:07.8630937Z               "line": 161
2026-06-15T15:10:07.8631038Z             }
2026-06-15T15:10:07.8631142Z           ]
2026-06-15T15:10:07.8631242Z         }
2026-06-15T15:10:07.8631353Z       }
2026-06-15T15:10:07.8631448Z     },
2026-06-15T15:10:07.8631543Z     {
2026-06-15T15:10:07.8631663Z       "id": "REQ-SEAM-RESUME",
2026-06-15T15:10:07.8631974Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-15T15:10:07.8632092Z       "requiredStages": [
2026-06-15T15:10:07.8632200Z         "impl",
2026-06-15T15:10:07.8632296Z         "unit"
2026-06-15T15:10:07.8632400Z       ],
2026-06-15T15:10:07.8632498Z       "stages": {
2026-06-15T15:10:07.8632608Z         "doc": {
2026-06-15T15:10:07.8632724Z           "complete": false,
2026-06-15T15:10:07.8632836Z           "evidence": []
2026-06-15T15:10:07.8632937Z         },
2026-06-15T15:10:07.8633037Z         "impl": {
2026-06-15T15:10:07.8633141Z           "complete": true,
2026-06-15T15:10:07.8633252Z           "evidence": [
2026-06-15T15:10:07.8633456Z             {
2026-06-15T15:10:07.8633596Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T15:10:07.8633695Z               "line": 19
2026-06-15T15:10:07.8633800Z             }
2026-06-15T15:10:07.8633901Z           ]
2026-06-15T15:10:07.8634000Z         },
2026-06-15T15:10:07.8634105Z         "int": {
2026-06-15T15:10:07.8634216Z           "complete": false,
2026-06-15T15:10:07.8634329Z           "evidence": []
2026-06-15T15:10:07.8634429Z         },
2026-06-15T15:10:07.8634535Z         "unit": {
2026-06-15T15:10:07.8634639Z           "complete": true,
2026-06-15T15:10:07.8634739Z           "evidence": [
2026-06-15T15:10:07.8634841Z             {
2026-06-15T15:10:07.8634982Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T15:10:07.8635096Z               "line": 201
2026-06-15T15:10:07.8635196Z             },
2026-06-15T15:10:07.8635297Z             {
2026-06-15T15:10:07.8635434Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T15:10:07.8635549Z               "line": 223
2026-06-15T15:10:07.8635658Z             },
2026-06-15T15:10:07.8635753Z             {
2026-06-15T15:10:07.8635897Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T15:10:07.8636001Z               "line": 244
2026-06-15T15:10:07.8636102Z             }
2026-06-15T15:10:07.8636207Z           ]
2026-06-15T15:10:07.8636312Z         }
2026-06-15T15:10:07.8636412Z       }
2026-06-15T15:10:07.8636513Z     },
2026-06-15T15:10:07.8636617Z     {
2026-06-15T15:10:07.8636737Z       "id": "REQ-SEAM-SPAWN",
2026-06-15T15:10:07.8636865Z       "title": "spawn-session seam",
2026-06-15T15:10:07.8636984Z       "requiredStages": [
2026-06-15T15:10:07.8637076Z         "impl",
2026-06-15T15:10:07.8637185Z         "unit"
2026-06-15T15:10:07.8637284Z       ],
2026-06-15T15:10:07.8637393Z       "stages": {
2026-06-15T15:10:07.8637493Z         "doc": {
2026-06-15T15:10:07.8637615Z           "complete": false,
2026-06-15T15:10:07.8637720Z           "evidence": []
2026-06-15T15:10:07.8637826Z         },
2026-06-15T15:10:07.8637930Z         "impl": {
2026-06-15T15:10:07.8638034Z           "complete": true,
2026-06-15T15:10:07.8638145Z           "evidence": [
2026-06-15T15:10:07.8638239Z             {
2026-06-15T15:10:07.8638389Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.8638498Z               "line": 20
2026-06-15T15:10:07.8638592Z             }
2026-06-15T15:10:07.8638694Z           ]
2026-06-15T15:10:07.8638793Z         },
2026-06-15T15:10:07.8638893Z         "int": {
2026-06-15T15:10:07.8639075Z           "complete": false,
2026-06-15T15:10:07.8639188Z           "evidence": []
2026-06-15T15:10:07.8639294Z         },
2026-06-15T15:10:07.8639394Z         "unit": {
2026-06-15T15:10:07.8639508Z           "complete": true,
2026-06-15T15:10:07.8639618Z           "evidence": [
2026-06-15T15:10:07.8639723Z             {
2026-06-15T15:10:07.8639866Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.8639982Z               "line": 435
2026-06-15T15:10:07.8640099Z             },
2026-06-15T15:10:07.8640198Z             {
2026-06-15T15:10:07.8640341Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.8640454Z               "line": 442
2026-06-15T15:10:07.8640553Z             },
2026-06-15T15:10:07.8640654Z             {
2026-06-15T15:10:07.8640926Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.8641031Z               "line": 452
2026-06-15T15:10:07.8641135Z             },
2026-06-15T15:10:07.8641231Z             {
2026-06-15T15:10:07.8641374Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.8641487Z               "line": 458
2026-06-15T15:10:07.8641589Z             },
2026-06-15T15:10:07.8641689Z             {
2026-06-15T15:10:07.8641836Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.8641937Z               "line": 483
2026-06-15T15:10:07.8642041Z             },
2026-06-15T15:10:07.8642132Z             {
2026-06-15T15:10:07.8642370Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T15:10:07.8642481Z               "line": 520
2026-06-15T15:10:07.8642581Z             }
2026-06-15T15:10:07.8642680Z           ]
2026-06-15T15:10:07.8642784Z         }
2026-06-15T15:10:07.8642889Z       }
2026-06-15T15:10:07.8642988Z     },
2026-06-15T15:10:07.8643091Z     {
2026-06-15T15:10:07.8643211Z       "id": "REQ-SEAM-UPDATE",
2026-06-15T15:10:07.8643396Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-15T15:10:07.8643512Z       "requiredStages": [
2026-06-15T15:10:07.8643607Z         "impl",
2026-06-15T15:10:07.8643711Z         "unit"
2026-06-15T15:10:07.8643813Z       ],
2026-06-15T15:10:07.8643908Z       "stages": {
2026-06-15T15:10:07.8644007Z         "doc": {
2026-06-15T15:10:07.8644123Z           "complete": false,
2026-06-15T15:10:07.8644232Z           "evidence": []
2026-06-15T15:10:07.8644331Z         },
2026-06-15T15:10:07.8644432Z         "impl": {
2026-06-15T15:10:07.8644547Z           "complete": true,
2026-06-15T15:10:07.8644665Z           "evidence": [
2026-06-15T15:10:07.8644767Z             {
2026-06-15T15:10:07.8644927Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.8645038Z               "line": 28
2026-06-15T15:10:07.8645139Z             },
2026-06-15T15:10:07.8645246Z             {
2026-06-15T15:10:07.8645406Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.8645515Z               "line": 83
2026-06-15T15:10:07.8645618Z             }
2026-06-15T15:10:07.8645723Z           ]
2026-06-15T15:10:07.8645829Z         },
2026-06-15T15:10:07.8645932Z         "int": {
2026-06-15T15:10:07.8646043Z           "complete": false,
2026-06-15T15:10:07.8646162Z           "evidence": []
2026-06-15T15:10:07.8646266Z         },
2026-06-15T15:10:07.8646362Z         "unit": {
2026-06-15T15:10:07.8646476Z           "complete": true,
2026-06-15T15:10:07.8646581Z           "evidence": [
2026-06-15T15:10:07.8646682Z             {
2026-06-15T15:10:07.8646890Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.8647011Z               "line": 286
2026-06-15T15:10:07.8647115Z             },
2026-06-15T15:10:07.8647215Z             {
2026-06-15T15:10:07.8647374Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.8647482Z               "line": 297
2026-06-15T15:10:07.8647583Z             }
2026-06-15T15:10:07.8647689Z           ]
2026-06-15T15:10:07.8647777Z         }
2026-06-15T15:10:07.8647882Z       }
2026-06-15T15:10:07.8647987Z     },
2026-06-15T15:10:07.8648085Z     {
2026-06-15T15:10:07.8648204Z       "id": "REQ-SEC-1",
2026-06-15T15:10:07.8648628Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-15T15:10:07.8648752Z       "requiredStages": [
2026-06-15T15:10:07.8648847Z         "impl",
2026-06-15T15:10:07.8649024Z         "unit"
2026-06-15T15:10:07.8649128Z       ],
2026-06-15T15:10:07.8649225Z       "stages": {
2026-06-15T15:10:07.8649324Z         "doc": {
2026-06-15T15:10:07.8649448Z           "complete": false,
2026-06-15T15:10:07.8649563Z           "evidence": []
2026-06-15T15:10:07.8649663Z         },
2026-06-15T15:10:07.8649772Z         "impl": {
2026-06-15T15:10:07.8649888Z           "complete": true,
2026-06-15T15:10:07.8650097Z           "evidence": [
2026-06-15T15:10:07.8650203Z             {
2026-06-15T15:10:07.8650344Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T15:10:07.8650459Z               "line": 86
2026-06-15T15:10:07.8650547Z             },
2026-06-15T15:10:07.8650645Z             {
2026-06-15T15:10:07.8650787Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T15:10:07.8650902Z               "line": 116
2026-06-15T15:10:07.8650999Z             },
2026-06-15T15:10:07.8651104Z             {
2026-06-15T15:10:07.8651243Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T15:10:07.8651452Z               "line": 130
2026-06-15T15:10:07.8651568Z             },
2026-06-15T15:10:07.8651676Z             {
2026-06-15T15:10:07.8651816Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T15:10:07.8651930Z               "line": 109
2026-06-15T15:10:07.8652029Z             },
2026-06-15T15:10:07.8652135Z             {
2026-06-15T15:10:07.8652277Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T15:10:07.8652387Z               "line": 130
2026-06-15T15:10:07.8652483Z             },
2026-06-15T15:10:07.8652587Z             {
2026-06-15T15:10:07.8652731Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T15:10:07.8652831Z               "line": 143
2026-06-15T15:10:07.8652935Z             },
2026-06-15T15:10:07.8653031Z             {
2026-06-15T15:10:07.8653170Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T15:10:07.8653273Z               "line": 209
2026-06-15T15:10:07.8653373Z             },
2026-06-15T15:10:07.8653473Z             {
2026-06-15T15:10:07.8653675Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T15:10:07.8653786Z               "line": 235
2026-06-15T15:10:07.8653900Z             },
2026-06-15T15:10:07.8654000Z             {
2026-06-15T15:10:07.8654135Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8654234Z               "line": 4742
2026-06-15T15:10:07.8654334Z             }
2026-06-15T15:10:07.8654425Z           ]
2026-06-15T15:10:07.8654530Z         },
2026-06-15T15:10:07.8654634Z         "int": {
2026-06-15T15:10:07.8654754Z           "complete": false,
2026-06-15T15:10:07.8654873Z           "evidence": []
2026-06-15T15:10:07.8654973Z         },
2026-06-15T15:10:07.8655083Z         "unit": {
2026-06-15T15:10:07.8655183Z           "complete": true,
2026-06-15T15:10:07.8655288Z           "evidence": [
2026-06-15T15:10:07.8655393Z             {
2026-06-15T15:10:07.8655540Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T15:10:07.8655656Z               "line": 142
2026-06-15T15:10:07.8655760Z             },
2026-06-15T15:10:07.8655869Z             {
2026-06-15T15:10:07.8656004Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T15:10:07.8656117Z               "line": 194
2026-06-15T15:10:07.8656216Z             },
2026-06-15T15:10:07.8656316Z             {
2026-06-15T15:10:07.8656469Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T15:10:07.8656583Z               "line": 235
2026-06-15T15:10:07.8656689Z             },
2026-06-15T15:10:07.8656789Z             {
2026-06-15T15:10:07.8656937Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-15T15:10:07.8657036Z               "line": 140
2026-06-15T15:10:07.8657136Z             },
2026-06-15T15:10:07.8657237Z             {
2026-06-15T15:10:07.8657379Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T15:10:07.8657494Z               "line": 247
2026-06-15T15:10:07.8657595Z             },
2026-06-15T15:10:07.8657689Z             {
2026-06-15T15:10:07.8657833Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T15:10:07.8657939Z               "line": 277
2026-06-15T15:10:07.8658037Z             },
2026-06-15T15:10:07.8658143Z             {
2026-06-15T15:10:07.8658277Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T15:10:07.8658380Z               "line": 310
2026-06-15T15:10:07.8658561Z             },
2026-06-15T15:10:07.8658664Z             {
2026-06-15T15:10:07.8658801Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T15:10:07.8658917Z               "line": 329
2026-06-15T15:10:07.8659088Z             },
2026-06-15T15:10:07.8659188Z             {
2026-06-15T15:10:07.8659327Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T15:10:07.8659440Z               "line": 362
2026-06-15T15:10:07.8659547Z             },
2026-06-15T15:10:07.8659642Z             {
2026-06-15T15:10:07.8659790Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T15:10:07.8659890Z               "line": 386
2026-06-15T15:10:07.8660114Z             },
2026-06-15T15:10:07.8660218Z             {
2026-06-15T15:10:07.8660356Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8660472Z               "line": 6794
2026-06-15T15:10:07.8660571Z             }
2026-06-15T15:10:07.8660676Z           ]
2026-06-15T15:10:07.8660777Z         }
2026-06-15T15:10:07.8660881Z       }
2026-06-15T15:10:07.8660981Z     },
2026-06-15T15:10:07.8661078Z     {
2026-06-15T15:10:07.8661191Z       "id": "REQ-SHELL-1",
2026-06-15T15:10:07.8662123Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-15T15:10:07.8662246Z       "requiredStages": [
2026-06-15T15:10:07.8662347Z         "impl",
2026-06-15T15:10:07.8662456Z         "unit",
2026-06-15T15:10:07.8662565Z         "int"
2026-06-15T15:10:07.8662666Z       ],
2026-06-15T15:10:07.8662771Z       "stages": {
2026-06-15T15:10:07.8662871Z         "doc": {
2026-06-15T15:10:07.8662991Z           "complete": false,
2026-06-15T15:10:07.8663091Z           "evidence": []
2026-06-15T15:10:07.8663195Z         },
2026-06-15T15:10:07.8663296Z         "impl": {
2026-06-15T15:10:07.8663410Z           "complete": true,
2026-06-15T15:10:07.8663519Z           "evidence": [
2026-06-15T15:10:07.8663620Z             {
2026-06-15T15:10:07.8663767Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.8663871Z               "line": 189
2026-06-15T15:10:07.8663976Z             },
2026-06-15T15:10:07.8664075Z             {
2026-06-15T15:10:07.8664216Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.8664331Z               "line": 216
2026-06-15T15:10:07.8664432Z             },
2026-06-15T15:10:07.8664531Z             {
2026-06-15T15:10:07.8664675Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T15:10:07.8664789Z               "line": 27
2026-06-15T15:10:07.8664894Z             },
2026-06-15T15:10:07.8664994Z             {
2026-06-15T15:10:07.8665142Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T15:10:07.8665243Z               "line": 52
2026-06-15T15:10:07.8665352Z             },
2026-06-15T15:10:07.8665447Z             {
2026-06-15T15:10:07.8665601Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T15:10:07.8665709Z               "line": 132
2026-06-15T15:10:07.8665814Z             },
2026-06-15T15:10:07.8665916Z             {
2026-06-15T15:10:07.8666057Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T15:10:07.8666177Z               "line": 164
2026-06-15T15:10:07.8666287Z             },
2026-06-15T15:10:07.8666386Z             {
2026-06-15T15:10:07.8666531Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8666635Z               "line": 22
2026-06-15T15:10:07.8666748Z             },
2026-06-15T15:10:07.8666848Z             {
2026-06-15T15:10:07.8666996Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8667095Z               "line": 65
2026-06-15T15:10:07.8667201Z             },
2026-06-15T15:10:07.8667302Z             {
2026-06-15T15:10:07.8667569Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8667678Z               "line": 76
2026-06-15T15:10:07.8667782Z             },
2026-06-15T15:10:07.8667898Z             {
2026-06-15T15:10:07.8668044Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8668150Z               "line": 150
2026-06-15T15:10:07.8668255Z             },
2026-06-15T15:10:07.8668354Z             {
2026-06-15T15:10:07.8668499Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8668602Z               "line": 209
2026-06-15T15:10:07.8668703Z             },
2026-06-15T15:10:07.8668804Z             {
2026-06-15T15:10:07.8669093Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8669216Z               "line": 254
2026-06-15T15:10:07.8669310Z             },
2026-06-15T15:10:07.8669415Z             {
2026-06-15T15:10:07.8669558Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8669681Z               "line": 276
2026-06-15T15:10:07.8669778Z             },
2026-06-15T15:10:07.8669878Z             {
2026-06-15T15:10:07.8670025Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8670135Z               "line": 289
2026-06-15T15:10:07.8670235Z             },
2026-06-15T15:10:07.8670335Z             {
2026-06-15T15:10:07.8670478Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.8670597Z               "line": 217
2026-06-15T15:10:07.8670698Z             },
2026-06-15T15:10:07.8670802Z             {
2026-06-15T15:10:07.8670945Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.8671056Z               "line": 233
2026-06-15T15:10:07.8671159Z             },
2026-06-15T15:10:07.8671265Z             {
2026-06-15T15:10:07.8671409Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.8671513Z               "line": 41
2026-06-15T15:10:07.8671619Z             },
2026-06-15T15:10:07.8671724Z             {
2026-06-15T15:10:07.8671879Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.8671988Z               "line": 222
2026-06-15T15:10:07.8672087Z             },
2026-06-15T15:10:07.8672191Z             {
2026-06-15T15:10:07.8672330Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T15:10:07.8672435Z               "line": 173
2026-06-15T15:10:07.8672539Z             },
2026-06-15T15:10:07.8672636Z             {
2026-06-15T15:10:07.8672768Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T15:10:07.8672882Z               "line": 319
2026-06-15T15:10:07.8672984Z             },
2026-06-15T15:10:07.8673088Z             {
2026-06-15T15:10:07.8673221Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T15:10:07.8673326Z               "line": 372
2026-06-15T15:10:07.8673431Z             },
2026-06-15T15:10:07.8673531Z             {
2026-06-15T15:10:07.8673683Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8673851Z               "line": 329
2026-06-15T15:10:07.8673961Z             },
2026-06-15T15:10:07.8674060Z             {
2026-06-15T15:10:07.8674190Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8674304Z               "line": 5471
2026-06-15T15:10:07.8674398Z             },
2026-06-15T15:10:07.8674493Z             {
2026-06-15T15:10:07.8674649Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8674762Z               "line": 5621
2026-06-15T15:10:07.8674863Z             },
2026-06-15T15:10:07.8674964Z             {
2026-06-15T15:10:07.8675087Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8675193Z               "line": 5664
2026-06-15T15:10:07.8675302Z             }
2026-06-15T15:10:07.8675411Z           ]
2026-06-15T15:10:07.8675508Z         },
2026-06-15T15:10:07.8675617Z         "int": {
2026-06-15T15:10:07.8675726Z           "complete": true,
2026-06-15T15:10:07.8675837Z           "evidence": [
2026-06-15T15:10:07.8675941Z             {
2026-06-15T15:10:07.8676217Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T15:10:07.8676331Z               "line": 709
2026-06-15T15:10:07.8676427Z             },
2026-06-15T15:10:07.8676532Z             {
2026-06-15T15:10:07.8676680Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T15:10:07.8676796Z               "line": 8
2026-06-15T15:10:07.8676894Z             },
2026-06-15T15:10:07.8676999Z             {
2026-06-15T15:10:07.8677162Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T15:10:07.8677265Z               "line": 49
2026-06-15T15:10:07.8677375Z             },
2026-06-15T15:10:07.8677481Z             {
2026-06-15T15:10:07.8677728Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8677838Z               "line": 709
2026-06-15T15:10:07.8677937Z             },
2026-06-15T15:10:07.8678038Z             {
2026-06-15T15:10:07.8678186Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8678294Z               "line": 1119
2026-06-15T15:10:07.8678396Z             },
2026-06-15T15:10:07.8678500Z             {
2026-06-15T15:10:07.8678648Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T15:10:07.8678758Z               "line": 17
2026-06-15T15:10:07.8678872Z             },
2026-06-15T15:10:07.8679026Z             {
2026-06-15T15:10:07.8679176Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T15:10:07.8679282Z               "line": 14
2026-06-15T15:10:07.8679388Z             }
2026-06-15T15:10:07.8679482Z           ]
2026-06-15T15:10:07.8679577Z         },
2026-06-15T15:10:07.8679681Z         "unit": {
2026-06-15T15:10:07.8679790Z           "complete": true,
2026-06-15T15:10:07.8679908Z           "evidence": [
2026-06-15T15:10:07.8680013Z             {
2026-06-15T15:10:07.8680156Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T15:10:07.8680265Z               "line": 234
2026-06-15T15:10:07.8680371Z             },
2026-06-15T15:10:07.8680476Z             {
2026-06-15T15:10:07.8680624Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T15:10:07.8680728Z               "line": 267
2026-06-15T15:10:07.8680828Z             },
2026-06-15T15:10:07.8680925Z             {
2026-06-15T15:10:07.8681072Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T15:10:07.8681176Z               "line": 307
2026-06-15T15:10:07.8681277Z             },
2026-06-15T15:10:07.8681376Z             {
2026-06-15T15:10:07.8681515Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8681631Z               "line": 577
2026-06-15T15:10:07.8681724Z             },
2026-06-15T15:10:07.8681835Z             {
2026-06-15T15:10:07.8681974Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8682087Z               "line": 650
2026-06-15T15:10:07.8682193Z             },
2026-06-15T15:10:07.8682298Z             {
2026-06-15T15:10:07.8682434Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8682563Z               "line": 794
2026-06-15T15:10:07.8682666Z             },
2026-06-15T15:10:07.8682765Z             {
2026-06-15T15:10:07.8682910Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.8683014Z               "line": 595
2026-06-15T15:10:07.8683109Z             },
2026-06-15T15:10:07.8683215Z             {
2026-06-15T15:10:07.8683357Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T15:10:07.8683462Z               "line": 399
2026-06-15T15:10:07.8683558Z             },
2026-06-15T15:10:07.8683658Z             {
2026-06-15T15:10:07.8683786Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8683905Z               "line": 7390
2026-06-15T15:10:07.8684019Z             },
2026-06-15T15:10:07.8684125Z             {
2026-06-15T15:10:07.8684258Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8684382Z               "line": 7714
2026-06-15T15:10:07.8684488Z             },
2026-06-15T15:10:07.8684586Z             {
2026-06-15T15:10:07.8684832Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8684944Z               "line": 8131
2026-06-15T15:10:07.8685048Z             }
2026-06-15T15:10:07.8685154Z           ]
2026-06-15T15:10:07.8685256Z         }
2026-06-15T15:10:07.8685355Z       }
2026-06-15T15:10:07.8685457Z     },
2026-06-15T15:10:07.8685561Z     {
2026-06-15T15:10:07.8685675Z       "id": "REQ-SHELL-2",
2026-06-15T15:10:07.8687273Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-15T15:10:07.8687559Z       "requiredStages": [
2026-06-15T15:10:07.8687680Z         "impl",
2026-06-15T15:10:07.8687787Z         "unit",
2026-06-15T15:10:07.8687886Z         "int"
2026-06-15T15:10:07.8687988Z       ],
2026-06-15T15:10:07.8688102Z       "stages": {
2026-06-15T15:10:07.8688206Z         "doc": {
2026-06-15T15:10:07.8688331Z           "complete": false,
2026-06-15T15:10:07.8688431Z           "evidence": []
2026-06-15T15:10:07.8688530Z         },
2026-06-15T15:10:07.8688637Z         "impl": {
2026-06-15T15:10:07.8688751Z           "complete": true,
2026-06-15T15:10:07.8688859Z           "evidence": [
2026-06-15T15:10:07.8689042Z             {
2026-06-15T15:10:07.8689198Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.8689309Z               "line": 217
2026-06-15T15:10:07.8689408Z             },
2026-06-15T15:10:07.8689513Z             {
2026-06-15T15:10:07.8689662Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.8689775Z               "line": 403
2026-06-15T15:10:07.8689876Z             },
2026-06-15T15:10:07.8689986Z             {
2026-06-15T15:10:07.8690132Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T15:10:07.8690242Z               "line": 250
2026-06-15T15:10:07.8690354Z             },
2026-06-15T15:10:07.8690458Z             {
2026-06-15T15:10:07.8690603Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.8690707Z               "line": 353
2026-06-15T15:10:07.8690807Z             },
2026-06-15T15:10:07.8690913Z             {
2026-06-15T15:10:07.8691059Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.8691165Z               "line": 30
2026-06-15T15:10:07.8691265Z             },
2026-06-15T15:10:07.8691374Z             {
2026-06-15T15:10:07.8691518Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.8691632Z               "line": 255
2026-06-15T15:10:07.8691726Z             },
2026-06-15T15:10:07.8691828Z             {
2026-06-15T15:10:07.8691975Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.8692085Z               "line": 291
2026-06-15T15:10:07.8692191Z             },
2026-06-15T15:10:07.8692294Z             {
2026-06-15T15:10:07.8692434Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.8692548Z               "line": 466
2026-06-15T15:10:07.8692643Z             },
2026-06-15T15:10:07.8692748Z             {
2026-06-15T15:10:07.8692891Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.8693008Z               "line": 348
2026-06-15T15:10:07.8693113Z             },
2026-06-15T15:10:07.8693212Z             {
2026-06-15T15:10:07.8693359Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T15:10:07.8693479Z               "line": 115
2026-06-15T15:10:07.8693579Z             },
2026-06-15T15:10:07.8693683Z             {
2026-06-15T15:10:07.8693822Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8693926Z               "line": 120
2026-06-15T15:10:07.8694027Z             },
2026-06-15T15:10:07.8694223Z             {
2026-06-15T15:10:07.8694376Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8694484Z               "line": 369
2026-06-15T15:10:07.8694584Z             },
2026-06-15T15:10:07.8694691Z             {
2026-06-15T15:10:07.8694841Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8694957Z               "line": 478
2026-06-15T15:10:07.8695105Z             },
2026-06-15T15:10:07.8695200Z             {
2026-06-15T15:10:07.8695349Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8695448Z               "line": 24
2026-06-15T15:10:07.8695566Z             },
2026-06-15T15:10:07.8695868Z             {
2026-06-15T15:10:07.8696017Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8696131Z               "line": 76
2026-06-15T15:10:07.8696240Z             },
2026-06-15T15:10:07.8696346Z             {
2026-06-15T15:10:07.8696522Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8696647Z               "line": 154
2026-06-15T15:10:07.8696747Z             },
2026-06-15T15:10:07.8696865Z             {
2026-06-15T15:10:07.8697023Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8697132Z               "line": 177
2026-06-15T15:10:07.8697228Z             },
2026-06-15T15:10:07.8697328Z             {
2026-06-15T15:10:07.8697480Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8697639Z               "line": 273
2026-06-15T15:10:07.8697748Z             },
2026-06-15T15:10:07.8697853Z             {
2026-06-15T15:10:07.8698014Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8698139Z               "line": 455
2026-06-15T15:10:07.8698254Z             },
2026-06-15T15:10:07.8698366Z             {
2026-06-15T15:10:07.8698519Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8698639Z               "line": 537
2026-06-15T15:10:07.8698762Z             },
2026-06-15T15:10:07.8698858Z             {
2026-06-15T15:10:07.8699095Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T15:10:07.8702718Z               "line": 27
2026-06-15T15:10:07.8702859Z             },
2026-06-15T15:10:07.8702970Z             {
2026-06-15T15:10:07.8703136Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T15:10:07.8703250Z               "line": 43
2026-06-15T15:10:07.8703352Z             },
2026-06-15T15:10:07.8703455Z             {
2026-06-15T15:10:07.8703611Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8703726Z               "line": 393
2026-06-15T15:10:07.8703848Z             },
2026-06-15T15:10:07.8703948Z             {
2026-06-15T15:10:07.8704087Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8704190Z               "line": 1676
2026-06-15T15:10:07.8704292Z             },
2026-06-15T15:10:07.8704397Z             {
2026-06-15T15:10:07.8704539Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8704669Z               "line": 5485
2026-06-15T15:10:07.8704769Z             },
2026-06-15T15:10:07.8704883Z             {
2026-06-15T15:10:07.8705017Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8705131Z               "line": 5546
2026-06-15T15:10:07.8705236Z             },
2026-06-15T15:10:07.8705336Z             {
2026-06-15T15:10:07.8705460Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8705575Z               "line": 5574
2026-06-15T15:10:07.8705679Z             },
2026-06-15T15:10:07.8705779Z             {
2026-06-15T15:10:07.8705904Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8706027Z               "line": 5628
2026-06-15T15:10:07.8706140Z             },
2026-06-15T15:10:07.8706245Z             {
2026-06-15T15:10:07.8706381Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8706490Z               "line": 5750
2026-06-15T15:10:07.8706592Z             },
2026-06-15T15:10:07.8706829Z             {
2026-06-15T15:10:07.8706963Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8707077Z               "line": 5810
2026-06-15T15:10:07.8707173Z             },
2026-06-15T15:10:07.8707278Z             {
2026-06-15T15:10:07.8707411Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.8707517Z               "line": 298
2026-06-15T15:10:07.8707621Z             },
2026-06-15T15:10:07.8707726Z             {
2026-06-15T15:10:07.8707861Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.8707970Z               "line": 339
2026-06-15T15:10:07.8708079Z             }
2026-06-15T15:10:07.8708175Z           ]
2026-06-15T15:10:07.8708403Z         },
2026-06-15T15:10:07.8708509Z         "int": {
2026-06-15T15:10:07.8708632Z           "complete": true,
2026-06-15T15:10:07.8708748Z           "evidence": [
2026-06-15T15:10:07.8708848Z             {
2026-06-15T15:10:07.8709117Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T15:10:07.8709228Z               "line": 702
2026-06-15T15:10:07.8709336Z             },
2026-06-15T15:10:07.8709432Z             {
2026-06-15T15:10:07.8709589Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8709704Z               "line": 709
2026-06-15T15:10:07.8709804Z             },
2026-06-15T15:10:07.8709904Z             {
2026-06-15T15:10:07.8710047Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8710171Z               "line": 1119
2026-06-15T15:10:07.8710290Z             },
2026-06-15T15:10:07.8710401Z             {
2026-06-15T15:10:07.8710566Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T15:10:07.8710687Z               "line": 18
2026-06-15T15:10:07.8710796Z             }
2026-06-15T15:10:07.8710895Z           ]
2026-06-15T15:10:07.8711002Z         },
2026-06-15T15:10:07.8711106Z         "unit": {
2026-06-15T15:10:07.8711224Z           "complete": true,
2026-06-15T15:10:07.8711338Z           "evidence": [
2026-06-15T15:10:07.8711442Z             {
2026-06-15T15:10:07.8711593Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T15:10:07.8711699Z               "line": 550
2026-06-15T15:10:07.8711798Z             },
2026-06-15T15:10:07.8711902Z             {
2026-06-15T15:10:07.8712061Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T15:10:07.8712170Z               "line": 796
2026-06-15T15:10:07.8712271Z             },
2026-06-15T15:10:07.8712376Z             {
2026-06-15T15:10:07.8712523Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8712639Z               "line": 683
2026-06-15T15:10:07.8712748Z             },
2026-06-15T15:10:07.8712852Z             {
2026-06-15T15:10:07.8713000Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8713114Z               "line": 732
2026-06-15T15:10:07.8713220Z             },
2026-06-15T15:10:07.8713353Z             {
2026-06-15T15:10:07.8713496Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8713621Z               "line": 756
2026-06-15T15:10:07.8713724Z             },
2026-06-15T15:10:07.8713825Z             {
2026-06-15T15:10:07.8713964Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8714082Z               "line": 602
2026-06-15T15:10:07.8714186Z             },
2026-06-15T15:10:07.8714286Z             {
2026-06-15T15:10:07.8714431Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8714537Z               "line": 623
2026-06-15T15:10:07.8714647Z             },
2026-06-15T15:10:07.8714742Z             {
2026-06-15T15:10:07.8714885Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8714990Z               "line": 659
2026-06-15T15:10:07.8715084Z             },
2026-06-15T15:10:07.8715186Z             {
2026-06-15T15:10:07.8715333Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8715438Z               "line": 713
2026-06-15T15:10:07.8715643Z             },
2026-06-15T15:10:07.8715743Z             {
2026-06-15T15:10:07.8715887Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8716005Z               "line": 731
2026-06-15T15:10:07.8716111Z             },
2026-06-15T15:10:07.8716216Z             {
2026-06-15T15:10:07.8716358Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8716460Z               "line": 765
2026-06-15T15:10:07.8716564Z             },
2026-06-15T15:10:07.8716662Z             {
2026-06-15T15:10:07.8716810Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T15:10:07.8716932Z               "line": 840
2026-06-15T15:10:07.8717127Z             },
2026-06-15T15:10:07.8717233Z             {
2026-06-15T15:10:07.8717380Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T15:10:07.8717491Z               "line": 80
2026-06-15T15:10:07.8717595Z             },
2026-06-15T15:10:07.8717690Z             {
2026-06-15T15:10:07.8717829Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8717938Z               "line": 6594
2026-06-15T15:10:07.8718044Z             },
2026-06-15T15:10:07.8718148Z             {
2026-06-15T15:10:07.8718281Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8718397Z               "line": 7468
2026-06-15T15:10:07.8718505Z             },
2026-06-15T15:10:07.8718615Z             {
2026-06-15T15:10:07.8718740Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8718858Z               "line": 7538
2026-06-15T15:10:07.8719012Z             },
2026-06-15T15:10:07.8719116Z             {
2026-06-15T15:10:07.8719254Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8719370Z               "line": 7576
2026-06-15T15:10:07.8719473Z             }
2026-06-15T15:10:07.8719572Z           ]
2026-06-15T15:10:07.8719673Z         }
2026-06-15T15:10:07.8719774Z       }
2026-06-15T15:10:07.8719882Z     },
2026-06-15T15:10:07.8719983Z     {
2026-06-15T15:10:07.8720103Z       "id": "REQ-SHELL-3",
2026-06-15T15:10:07.8721997Z       "title": "Drive channel (owner->shell, REST-only, never-spooled, latest-wins): the owner->shell mirror of sensory for continuous real-time control (scroll/crank/stick/avatar) — a [shell.drive] manifest vocab + EVENT_TYPE_DRIVE frame, delivered to the ONLINE binary only via a single live slot (a new frame supersedes an undelivered one — no spool, no queue, no replay on relink), dropped-with-diagnostic if the shell is offline; cross-node rides the ephemeral link (REST class), never the durable shell spool. Commands = discrete+durable; drive = continuous+ephemeral (CONTEXT:260, minted 2026-06-11 Gateway grill).",
2026-06-15T15:10:07.8722125Z       "requiredStages": [],
2026-06-15T15:10:07.8722235Z       "stages": {
2026-06-15T15:10:07.8722349Z         "doc": {
2026-06-15T15:10:07.8722468Z           "complete": false,
2026-06-15T15:10:07.8722583Z           "evidence": []
2026-06-15T15:10:07.8722683Z         },
2026-06-15T15:10:07.8722796Z         "impl": {
2026-06-15T15:10:07.8722917Z           "complete": false,
2026-06-15T15:10:07.8723026Z           "evidence": []
2026-06-15T15:10:07.8723131Z         },
2026-06-15T15:10:07.8723236Z         "int": {
2026-06-15T15:10:07.8723355Z           "complete": false,
2026-06-15T15:10:07.8723460Z           "evidence": []
2026-06-15T15:10:07.8723561Z         },
2026-06-15T15:10:07.8723660Z         "unit": {
2026-06-15T15:10:07.8723775Z           "complete": false,
2026-06-15T15:10:07.8723890Z           "evidence": []
2026-06-15T15:10:07.8723989Z         }
2026-06-15T15:10:07.8724090Z       }
2026-06-15T15:10:07.8724191Z     },
2026-06-15T15:10:07.8724299Z     {
2026-06-15T15:10:07.8724420Z       "id": "REQ-SHELL-4",
2026-06-15T15:10:07.8726232Z       "title": "Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, reliable-ordered, link-bound QUIC stream pair carrying opaque wire protocol traffic the channel taxonomy must NOT reinterpret (first consumer usbip URB) — manifest opt-in, not enveloped, not MAC-framed, not spooled; the link lifecycle governs it (a link-break closes the tunnel). Reliable-ordered ⇒ congestion surfaces as lag never loss ⇒ acceptable only on-LAN: the on-LAN posture is documented and the tunnel is NOT proven cross-WAN (CONTEXT:262, minted 2026-06-11 Gateway grill; doyle gate C2).",
2026-06-15T15:10:07.8726470Z       "requiredStages": [],
2026-06-15T15:10:07.8726580Z       "stages": {
2026-06-15T15:10:07.8726691Z         "doc": {
2026-06-15T15:10:07.8726809Z           "complete": false,
2026-06-15T15:10:07.8726919Z           "evidence": []
2026-06-15T15:10:07.8727025Z         },
2026-06-15T15:10:07.8727124Z         "impl": {
2026-06-15T15:10:07.8727342Z           "complete": false,
2026-06-15T15:10:07.8727459Z           "evidence": []
2026-06-15T15:10:07.8727572Z         },
2026-06-15T15:10:07.8727674Z         "int": {
2026-06-15T15:10:07.8727779Z           "complete": false,
2026-06-15T15:10:07.8727887Z           "evidence": []
2026-06-15T15:10:07.8727998Z         },
2026-06-15T15:10:07.8728103Z         "unit": {
2026-06-15T15:10:07.8728206Z           "complete": false,
2026-06-15T15:10:07.8728322Z           "evidence": []
2026-06-15T15:10:07.8728417Z         }
2026-06-15T15:10:07.8728512Z       }
2026-06-15T15:10:07.8728623Z     },
2026-06-15T15:10:07.8728741Z     {
2026-06-15T15:10:07.8728860Z       "id": "REQ-SHELL-5",
2026-06-15T15:10:07.8730180Z       "title": "Shell ownership is owner-type-agnostic: any non-Shell endpoint type may own/spawn/drive/command/link a shell (Gateway the named first) — control-exclusivity keys on the owner endpoint_id, NEVER on the owner's endpoint type. No ownership path (mint, launch, owner-from-link, cmd, drive, tunnel, sleep/wake, owner-shutdown) inspects the owner's type (CONTEXT:264, ratified 2026-06-11 Gateway grill).",
2026-06-15T15:10:07.8730320Z       "requiredStages": [
2026-06-15T15:10:07.8730428Z         "doc",
2026-06-15T15:10:07.8730524Z         "impl"
2026-06-15T15:10:07.8730629Z       ],
2026-06-15T15:10:07.8730733Z       "stages": {
2026-06-15T15:10:07.8730834Z         "doc": {
2026-06-15T15:10:07.8730948Z           "complete": true,
2026-06-15T15:10:07.8731053Z           "evidence": [
2026-06-15T15:10:07.8731148Z             {
2026-06-15T15:10:07.8731268Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.8731372Z               "line": 264
2026-06-15T15:10:07.8731468Z             }
2026-06-15T15:10:07.8731569Z           ]
2026-06-15T15:10:07.8731669Z         },
2026-06-15T15:10:07.8731773Z         "impl": {
2026-06-15T15:10:07.8731893Z           "complete": true,
2026-06-15T15:10:07.8731992Z           "evidence": [
2026-06-15T15:10:07.8732092Z             {
2026-06-15T15:10:07.8732254Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T15:10:07.8732363Z               "line": 255
2026-06-15T15:10:07.8732463Z             }
2026-06-15T15:10:07.8732558Z           ]
2026-06-15T15:10:07.8732661Z         },
2026-06-15T15:10:07.8732762Z         "int": {
2026-06-15T15:10:07.8732882Z           "complete": false,
2026-06-15T15:10:07.8732990Z           "evidence": []
2026-06-15T15:10:07.8733091Z         },
2026-06-15T15:10:07.8733191Z         "unit": {
2026-06-15T15:10:07.8733309Z           "complete": false,
2026-06-15T15:10:07.8733425Z           "evidence": []
2026-06-15T15:10:07.8733524Z         }
2026-06-15T15:10:07.8733629Z       }
2026-06-15T15:10:07.8733725Z     },
2026-06-15T15:10:07.8733834Z     {
2026-06-15T15:10:07.8733953Z       "id": "REQ-START-1",
2026-06-15T15:10:07.8734182Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-15T15:10:07.8734301Z       "requiredStages": [
2026-06-15T15:10:07.8734408Z         "impl",
2026-06-15T15:10:07.8734525Z         "unit"
2026-06-15T15:10:07.8734626Z       ],
2026-06-15T15:10:07.8734732Z       "stages": {
2026-06-15T15:10:07.8734840Z         "doc": {
2026-06-15T15:10:07.8734950Z           "complete": false,
2026-06-15T15:10:07.8735061Z           "evidence": []
2026-06-15T15:10:07.8735159Z         },
2026-06-15T15:10:07.8735388Z         "impl": {
2026-06-15T15:10:07.8735504Z           "complete": true,
2026-06-15T15:10:07.8735619Z           "evidence": [
2026-06-15T15:10:07.8735715Z             {
2026-06-15T15:10:07.8735862Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T15:10:07.8735977Z               "line": 16
2026-06-15T15:10:07.8736082Z             }
2026-06-15T15:10:07.8736186Z           ]
2026-06-15T15:10:07.8736282Z         },
2026-06-15T15:10:07.8736401Z         "int": {
2026-06-15T15:10:07.8736520Z           "complete": false,
2026-06-15T15:10:07.8736631Z           "evidence": []
2026-06-15T15:10:07.8736739Z         },
2026-06-15T15:10:07.8736844Z         "unit": {
2026-06-15T15:10:07.8737059Z           "complete": true,
2026-06-15T15:10:07.8737169Z           "evidence": [
2026-06-15T15:10:07.8737265Z             {
2026-06-15T15:10:07.8737411Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T15:10:07.8737512Z               "line": 43
2026-06-15T15:10:07.8737618Z             },
2026-06-15T15:10:07.8737740Z             {
2026-06-15T15:10:07.8737882Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T15:10:07.8737982Z               "line": 59
2026-06-15T15:10:07.8738091Z             }
2026-06-15T15:10:07.8738195Z           ]
2026-06-15T15:10:07.8738296Z         }
2026-06-15T15:10:07.8738391Z       }
2026-06-15T15:10:07.8738491Z     },
2026-06-15T15:10:07.8738592Z     {
2026-06-15T15:10:07.8738705Z       "id": "REQ-START-2",
2026-06-15T15:10:07.8738873Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-15T15:10:07.8739063Z       "requiredStages": [
2026-06-15T15:10:07.8739169Z         "impl",
2026-06-15T15:10:07.8739292Z         "unit",
2026-06-15T15:10:07.8739397Z         "int"
2026-06-15T15:10:07.8739498Z       ],
2026-06-15T15:10:07.8739607Z       "stages": {
2026-06-15T15:10:07.8739712Z         "doc": {
2026-06-15T15:10:07.8739832Z           "complete": false,
2026-06-15T15:10:07.8739936Z           "evidence": []
2026-06-15T15:10:07.8740041Z         },
2026-06-15T15:10:07.8740137Z         "impl": {
2026-06-15T15:10:07.8740259Z           "complete": true,
2026-06-15T15:10:07.8740365Z           "evidence": [
2026-06-15T15:10:07.8740476Z             {
2026-06-15T15:10:07.8740622Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8740726Z               "line": 16
2026-06-15T15:10:07.8740832Z             },
2026-06-15T15:10:07.8740936Z             {
2026-06-15T15:10:07.8741074Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8741180Z               "line": 92
2026-06-15T15:10:07.8741284Z             },
2026-06-15T15:10:07.8741384Z             {
2026-06-15T15:10:07.8741537Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8741641Z               "line": 232
2026-06-15T15:10:07.8741743Z             }
2026-06-15T15:10:07.8741842Z           ]
2026-06-15T15:10:07.8741947Z         },
2026-06-15T15:10:07.8742053Z         "int": {
2026-06-15T15:10:07.8742171Z           "complete": true,
2026-06-15T15:10:07.8742285Z           "evidence": [
2026-06-15T15:10:07.8742387Z             {
2026-06-15T15:10:07.8742523Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T15:10:07.8742643Z               "line": 186
2026-06-15T15:10:07.8742744Z             }
2026-06-15T15:10:07.8742847Z           ]
2026-06-15T15:10:07.8742952Z         },
2026-06-15T15:10:07.8743052Z         "unit": {
2026-06-15T15:10:07.8743174Z           "complete": true,
2026-06-15T15:10:07.8743288Z           "evidence": [
2026-06-15T15:10:07.8743389Z             {
2026-06-15T15:10:07.8743535Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8743651Z               "line": 466
2026-06-15T15:10:07.8743760Z             },
2026-06-15T15:10:07.8743864Z             {
2026-06-15T15:10:07.8744009Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8744109Z               "line": 499
2026-06-15T15:10:07.8744208Z             }
2026-06-15T15:10:07.8744309Z           ]
2026-06-15T15:10:07.8744527Z         }
2026-06-15T15:10:07.8744633Z       }
2026-06-15T15:10:07.8744737Z     },
2026-06-15T15:10:07.8744842Z     {
2026-06-15T15:10:07.8744958Z       "id": "REQ-START-3",
2026-06-15T15:10:07.8745157Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-15T15:10:07.8745278Z       "requiredStages": [
2026-06-15T15:10:07.8745390Z         "impl",
2026-06-15T15:10:07.8745486Z         "unit",
2026-06-15T15:10:07.8745597Z         "int"
2026-06-15T15:10:07.8745691Z       ],
2026-06-15T15:10:07.8745791Z       "stages": {
2026-06-15T15:10:07.8745895Z         "doc": {
2026-06-15T15:10:07.8746018Z           "complete": false,
2026-06-15T15:10:07.8746222Z           "evidence": []
2026-06-15T15:10:07.8746328Z         },
2026-06-15T15:10:07.8746446Z         "impl": {
2026-06-15T15:10:07.8746557Z           "complete": true,
2026-06-15T15:10:07.8746671Z           "evidence": [
2026-06-15T15:10:07.8746780Z             {
2026-06-15T15:10:07.8746923Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T15:10:07.8747046Z               "line": 23
2026-06-15T15:10:07.8747157Z             },
2026-06-15T15:10:07.8747257Z             {
2026-06-15T15:10:07.8747400Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T15:10:07.8747515Z               "line": 205
2026-06-15T15:10:07.8747619Z             },
2026-06-15T15:10:07.8747729Z             {
2026-06-15T15:10:07.8747868Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T15:10:07.8747976Z               "line": 221
2026-06-15T15:10:07.8748077Z             },
2026-06-15T15:10:07.8748174Z             {
2026-06-15T15:10:07.8748319Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8748438Z               "line": 17
2026-06-15T15:10:07.8748538Z             },
2026-06-15T15:10:07.8748641Z             {
2026-06-15T15:10:07.8748784Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8748890Z               "line": 35
2026-06-15T15:10:07.8749061Z             },
2026-06-15T15:10:07.8749166Z             {
2026-06-15T15:10:07.8749303Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8749429Z               "line": 93
2026-06-15T15:10:07.8749533Z             }
2026-06-15T15:10:07.8749637Z           ]
2026-06-15T15:10:07.8749743Z         },
2026-06-15T15:10:07.8749852Z         "int": {
2026-06-15T15:10:07.8749962Z           "complete": true,
2026-06-15T15:10:07.8750063Z           "evidence": [
2026-06-15T15:10:07.8750171Z             {
2026-06-15T15:10:07.8750319Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T15:10:07.8750425Z               "line": 488
2026-06-15T15:10:07.8750543Z             }
2026-06-15T15:10:07.8750649Z           ]
2026-06-15T15:10:07.8750754Z         },
2026-06-15T15:10:07.8750858Z         "unit": {
2026-06-15T15:10:07.8750979Z           "complete": true,
2026-06-15T15:10:07.8751097Z           "evidence": [
2026-06-15T15:10:07.8751191Z             {
2026-06-15T15:10:07.8751334Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T15:10:07.8751440Z               "line": 331
2026-06-15T15:10:07.8751544Z             },
2026-06-15T15:10:07.8751639Z             {
2026-06-15T15:10:07.8751788Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T15:10:07.8751905Z               "line": 352
2026-06-15T15:10:07.8752012Z             },
2026-06-15T15:10:07.8752121Z             {
2026-06-15T15:10:07.8752259Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T15:10:07.8752383Z               "line": 362
2026-06-15T15:10:07.8752483Z             },
2026-06-15T15:10:07.8752588Z             {
2026-06-15T15:10:07.8752736Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8752854Z               "line": 467
2026-06-15T15:10:07.8752966Z             },
2026-06-15T15:10:07.8753069Z             {
2026-06-15T15:10:07.8753208Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8753314Z               "line": 500
2026-06-15T15:10:07.8753545Z             },
2026-06-15T15:10:07.8753650Z             {
2026-06-15T15:10:07.8753781Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T15:10:07.8753896Z               "line": 508
2026-06-15T15:10:07.8753997Z             }
2026-06-15T15:10:07.8754110Z           ]
2026-06-15T15:10:07.8754206Z         }
2026-06-15T15:10:07.8754316Z       }
2026-06-15T15:10:07.8754420Z     },
2026-06-15T15:10:07.8754521Z     {
2026-06-15T15:10:07.8754645Z       "id": "REQ-START-4",
2026-06-15T15:10:07.8754802Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-15T15:10:07.8754926Z       "requiredStages": [
2026-06-15T15:10:07.8755026Z         "impl",
2026-06-15T15:10:07.8755246Z         "unit"
2026-06-15T15:10:07.8755346Z       ],
2026-06-15T15:10:07.8755451Z       "stages": {
2026-06-15T15:10:07.8755556Z         "doc": {
2026-06-15T15:10:07.8755670Z           "complete": false,
2026-06-15T15:10:07.8755780Z           "evidence": []
2026-06-15T15:10:07.8755885Z         },
2026-06-15T15:10:07.8755999Z         "impl": {
2026-06-15T15:10:07.8756119Z           "complete": true,
2026-06-15T15:10:07.8756233Z           "evidence": [
2026-06-15T15:10:07.8756341Z             {
2026-06-15T15:10:07.8756489Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8756601Z               "line": 461
2026-06-15T15:10:07.8756701Z             }
2026-06-15T15:10:07.8756801Z           ]
2026-06-15T15:10:07.8756898Z         },
2026-06-15T15:10:07.8756996Z         "int": {
2026-06-15T15:10:07.8757102Z           "complete": false,
2026-06-15T15:10:07.8757217Z           "evidence": []
2026-06-15T15:10:07.8757330Z         },
2026-06-15T15:10:07.8757441Z         "unit": {
2026-06-15T15:10:07.8757560Z           "complete": true,
2026-06-15T15:10:07.8757664Z           "evidence": [
2026-06-15T15:10:07.8757765Z             {
2026-06-15T15:10:07.8757912Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8758012Z               "line": 900
2026-06-15T15:10:07.8758118Z             }
2026-06-15T15:10:07.8758222Z           ]
2026-06-15T15:10:07.8758322Z         }
2026-06-15T15:10:07.8758419Z       }
2026-06-15T15:10:07.8758522Z     },
2026-06-15T15:10:07.8758628Z     {
2026-06-15T15:10:07.8758743Z       "id": "REQ-STORE-1",
2026-06-15T15:10:07.8759750Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-15T15:10:07.8759868Z       "requiredStages": [
2026-06-15T15:10:07.8759984Z         "impl",
2026-06-15T15:10:07.8760093Z         "unit"
2026-06-15T15:10:07.8760197Z       ],
2026-06-15T15:10:07.8760294Z       "stages": {
2026-06-15T15:10:07.8760402Z         "doc": {
2026-06-15T15:10:07.8760522Z           "complete": false,
2026-06-15T15:10:07.8760628Z           "evidence": []
2026-06-15T15:10:07.8760736Z         },
2026-06-15T15:10:07.8760851Z         "impl": {
2026-06-15T15:10:07.8760952Z           "complete": true,
2026-06-15T15:10:07.8761070Z           "evidence": [
2026-06-15T15:10:07.8761166Z             {
2026-06-15T15:10:07.8761328Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8761442Z               "line": 23
2026-06-15T15:10:07.8761548Z             },
2026-06-15T15:10:07.8761653Z             {
2026-06-15T15:10:07.8761799Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8761923Z               "line": 46
2026-06-15T15:10:07.8762023Z             },
2026-06-15T15:10:07.8762132Z             {
2026-06-15T15:10:07.8762291Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8762409Z               "line": 97
2026-06-15T15:10:07.8762514Z             },
2026-06-15T15:10:07.8762619Z             {
2026-06-15T15:10:07.8762767Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8763000Z               "line": 125
2026-06-15T15:10:07.8763105Z             },
2026-06-15T15:10:07.8763211Z             {
2026-06-15T15:10:07.8763353Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8763478Z               "line": 181
2026-06-15T15:10:07.8763583Z             },
2026-06-15T15:10:07.8763687Z             {
2026-06-15T15:10:07.8763841Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8763949Z               "line": 205
2026-06-15T15:10:07.8764063Z             },
2026-06-15T15:10:07.8764168Z             {
2026-06-15T15:10:07.8764313Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8764519Z               "line": 441
2026-06-15T15:10:07.8764628Z             },
2026-06-15T15:10:07.8764733Z             {
2026-06-15T15:10:07.8764881Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.8764999Z               "line": 25
2026-06-15T15:10:07.8765096Z             },
2026-06-15T15:10:07.8765205Z             {
2026-06-15T15:10:07.8765352Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.8765458Z               "line": 120
2026-06-15T15:10:07.8765558Z             },
2026-06-15T15:10:07.8765657Z             {
2026-06-15T15:10:07.8765811Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.8765920Z               "line": 148
2026-06-15T15:10:07.8766025Z             },
2026-06-15T15:10:07.8766130Z             {
2026-06-15T15:10:07.8766287Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.8766398Z               "line": 165
2026-06-15T15:10:07.8766501Z             },
2026-06-15T15:10:07.8766621Z             {
2026-06-15T15:10:07.8766774Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.8766887Z               "line": 180
2026-06-15T15:10:07.8766992Z             },
2026-06-15T15:10:07.8767096Z             {
2026-06-15T15:10:07.8767242Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.8767347Z               "line": 198
2026-06-15T15:10:07.8767458Z             },
2026-06-15T15:10:07.8767551Z             {
2026-06-15T15:10:07.8767710Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.8767824Z               "line": 207
2026-06-15T15:10:07.8767924Z             },
2026-06-15T15:10:07.8768030Z             {
2026-06-15T15:10:07.8768172Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T15:10:07.8768292Z               "line": 16
2026-06-15T15:10:07.8768392Z             },
2026-06-15T15:10:07.8768496Z             {
2026-06-15T15:10:07.8768635Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T15:10:07.8768749Z               "line": 63
2026-06-15T15:10:07.8768863Z             }
2026-06-15T15:10:07.8769045Z           ]
2026-06-15T15:10:07.8769149Z         },
2026-06-15T15:10:07.8769256Z         "int": {
2026-06-15T15:10:07.8769374Z           "complete": false,
2026-06-15T15:10:07.8769501Z           "evidence": []
2026-06-15T15:10:07.8769601Z         },
2026-06-15T15:10:07.8769710Z         "unit": {
2026-06-15T15:10:07.8769818Z           "complete": true,
2026-06-15T15:10:07.8769919Z           "evidence": [
2026-06-15T15:10:07.8770020Z             {
2026-06-15T15:10:07.8770176Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8770291Z               "line": 558
2026-06-15T15:10:07.8770395Z             },
2026-06-15T15:10:07.8770495Z             {
2026-06-15T15:10:07.8770643Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8770762Z               "line": 568
2026-06-15T15:10:07.8770863Z             },
2026-06-15T15:10:07.8770972Z             {
2026-06-15T15:10:07.8771125Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8771217Z               "line": 590
2026-06-15T15:10:07.8771326Z             },
2026-06-15T15:10:07.8771430Z             {
2026-06-15T15:10:07.8771569Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8771789Z               "line": 606
2026-06-15T15:10:07.8771898Z             },
2026-06-15T15:10:07.8772002Z             {
2026-06-15T15:10:07.8772151Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T15:10:07.8772269Z               "line": 629
2026-06-15T15:10:07.8772368Z             },
2026-06-15T15:10:07.8772469Z             {
2026-06-15T15:10:07.8772616Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.8772721Z               "line": 472
2026-06-15T15:10:07.8772831Z             },
2026-06-15T15:10:07.8772931Z             {
2026-06-15T15:10:07.8773084Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T15:10:07.8773288Z               "line": 507
2026-06-15T15:10:07.8773399Z             },
2026-06-15T15:10:07.8773499Z             {
2026-06-15T15:10:07.8773646Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T15:10:07.8773757Z               "line": 120
2026-06-15T15:10:07.8773866Z             },
2026-06-15T15:10:07.8773966Z             {
2026-06-15T15:10:07.8774110Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T15:10:07.8774228Z               "line": 128
2026-06-15T15:10:07.8774333Z             }
2026-06-15T15:10:07.8774443Z           ]
2026-06-15T15:10:07.8774547Z         }
2026-06-15T15:10:07.8774651Z       }
2026-06-15T15:10:07.8774756Z     },
2026-06-15T15:10:07.8774859Z     {
2026-06-15T15:10:07.8774983Z       "id": "REQ-SUBNET-1",
2026-06-15T15:10:07.8775341Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-15T15:10:07.8775469Z       "requiredStages": [
2026-06-15T15:10:07.8775573Z         "impl",
2026-06-15T15:10:07.8775675Z         "unit"
2026-06-15T15:10:07.8775780Z       ],
2026-06-15T15:10:07.8775884Z       "stages": {
2026-06-15T15:10:07.8775985Z         "doc": {
2026-06-15T15:10:07.8776099Z           "complete": false,
2026-06-15T15:10:07.8776213Z           "evidence": []
2026-06-15T15:10:07.8776324Z         },
2026-06-15T15:10:07.8776433Z         "impl": {
2026-06-15T15:10:07.8776556Z           "complete": true,
2026-06-15T15:10:07.8776667Z           "evidence": [
2026-06-15T15:10:07.8776780Z             {
2026-06-15T15:10:07.8776939Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8777052Z               "line": 281
2026-06-15T15:10:07.8777158Z             },
2026-06-15T15:10:07.8777259Z             {
2026-06-15T15:10:07.8777419Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8777523Z               "line": 599
2026-06-15T15:10:07.8777637Z             },
2026-06-15T15:10:07.8777736Z             {
2026-06-15T15:10:07.8777864Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8777980Z               "line": 2961
2026-06-15T15:10:07.8778079Z             },
2026-06-15T15:10:07.8778188Z             {
2026-06-15T15:10:07.8778318Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8778441Z               "line": 3271
2026-06-15T15:10:07.8778552Z             },
2026-06-15T15:10:07.8778651Z             {
2026-06-15T15:10:07.8778779Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8778885Z               "line": 3290
2026-06-15T15:10:07.8779061Z             },
2026-06-15T15:10:07.8779167Z             {
2026-06-15T15:10:07.8779295Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8779419Z               "line": 3354
2026-06-15T15:10:07.8779524Z             },
2026-06-15T15:10:07.8779628Z             {
2026-06-15T15:10:07.8779753Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8779877Z               "line": 3396
2026-06-15T15:10:07.8779971Z             },
2026-06-15T15:10:07.8780076Z             {
2026-06-15T15:10:07.8780209Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8780312Z               "line": 3585
2026-06-15T15:10:07.8780411Z             },
2026-06-15T15:10:07.8780518Z             {
2026-06-15T15:10:07.8780770Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8780879Z               "line": 3655
2026-06-15T15:10:07.8780983Z             },
2026-06-15T15:10:07.8781085Z             {
2026-06-15T15:10:07.8781208Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8781322Z               "line": 3879
2026-06-15T15:10:07.8781419Z             },
2026-06-15T15:10:07.8781518Z             {
2026-06-15T15:10:07.8781647Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8781762Z               "line": 4516
2026-06-15T15:10:07.8781866Z             },
2026-06-15T15:10:07.8781961Z             {
2026-06-15T15:10:07.8782209Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.8782310Z               "line": 418
2026-06-15T15:10:07.8782421Z             }
2026-06-15T15:10:07.8782510Z           ]
2026-06-15T15:10:07.8782615Z         },
2026-06-15T15:10:07.8782721Z         "int": {
2026-06-15T15:10:07.8782829Z           "complete": false,
2026-06-15T15:10:07.8782952Z           "evidence": []
2026-06-15T15:10:07.8783053Z         },
2026-06-15T15:10:07.8783153Z         "unit": {
2026-06-15T15:10:07.8783257Z           "complete": true,
2026-06-15T15:10:07.8783373Z           "evidence": [
2026-06-15T15:10:07.8783482Z             {
2026-06-15T15:10:07.8783630Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8783754Z               "line": 1477
2026-06-15T15:10:07.8783848Z             },
2026-06-15T15:10:07.8783973Z             {
2026-06-15T15:10:07.8784101Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8787490Z               "line": 8378
2026-06-15T15:10:07.8787617Z             },
2026-06-15T15:10:07.8787722Z             {
2026-06-15T15:10:07.8787862Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8787979Z               "line": 8548
2026-06-15T15:10:07.8788073Z             },
2026-06-15T15:10:07.8788174Z             {
2026-06-15T15:10:07.8788315Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8788434Z               "line": 8555
2026-06-15T15:10:07.8788540Z             },
2026-06-15T15:10:07.8788639Z             {
2026-06-15T15:10:07.8788763Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8788878Z               "line": 8608
2026-06-15T15:10:07.8789059Z             },
2026-06-15T15:10:07.8789164Z             {
2026-06-15T15:10:07.8789292Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8789392Z               "line": 8625
2026-06-15T15:10:07.8789493Z             },
2026-06-15T15:10:07.8789593Z             {
2026-06-15T15:10:07.8789717Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8789822Z               "line": 8655
2026-06-15T15:10:07.8789936Z             },
2026-06-15T15:10:07.8790032Z             {
2026-06-15T15:10:07.8790156Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8790261Z               "line": 8754
2026-06-15T15:10:07.8790362Z             },
2026-06-15T15:10:07.8790480Z             {
2026-06-15T15:10:07.8790607Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8790713Z               "line": 8905
2026-06-15T15:10:07.8790816Z             }
2026-06-15T15:10:07.8790914Z           ]
2026-06-15T15:10:07.8791010Z         }
2026-06-15T15:10:07.8791106Z       }
2026-06-15T15:10:07.8791215Z     },
2026-06-15T15:10:07.8791315Z     {
2026-06-15T15:10:07.8791440Z       "id": "REQ-SUBNET-2",
2026-06-15T15:10:07.8791712Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-15T15:10:07.8791835Z       "requiredStages": [
2026-06-15T15:10:07.8791935Z         "impl",
2026-06-15T15:10:07.8792036Z         "unit",
2026-06-15T15:10:07.8792136Z         "int"
2026-06-15T15:10:07.8792236Z       ],
2026-06-15T15:10:07.8792342Z       "stages": {
2026-06-15T15:10:07.8792441Z         "doc": {
2026-06-15T15:10:07.8792555Z           "complete": true,
2026-06-15T15:10:07.8792666Z           "evidence": [
2026-06-15T15:10:07.8792904Z             {
2026-06-15T15:10:07.8793093Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T15:10:07.8793200Z               "line": 60
2026-06-15T15:10:07.8793305Z             }
2026-06-15T15:10:07.8793403Z           ]
2026-06-15T15:10:07.8793503Z         },
2026-06-15T15:10:07.8793608Z         "impl": {
2026-06-15T15:10:07.8793714Z           "complete": true,
2026-06-15T15:10:07.8793817Z           "evidence": [
2026-06-15T15:10:07.8793918Z             {
2026-06-15T15:10:07.8794066Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.8794180Z               "line": 837
2026-06-15T15:10:07.8794277Z             },
2026-06-15T15:10:07.8794485Z             {
2026-06-15T15:10:07.8794633Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.8794752Z               "line": 1190
2026-06-15T15:10:07.8794853Z             },
2026-06-15T15:10:07.8794953Z             {
2026-06-15T15:10:07.8795105Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.8795211Z               "line": 538
2026-06-15T15:10:07.8795310Z             },
2026-06-15T15:10:07.8795415Z             {
2026-06-15T15:10:07.8795569Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T15:10:07.8795681Z               "line": 669
2026-06-15T15:10:07.8795786Z             },
2026-06-15T15:10:07.8795891Z             {
2026-06-15T15:10:07.8796037Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8796141Z               "line": 26
2026-06-15T15:10:07.8796243Z             },
2026-06-15T15:10:07.8796346Z             {
2026-06-15T15:10:07.8796485Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8796600Z               "line": 60
2026-06-15T15:10:07.8796708Z             },
2026-06-15T15:10:07.8796810Z             {
2026-06-15T15:10:07.8796966Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8797072Z               "line": 168
2026-06-15T15:10:07.8797176Z             },
2026-06-15T15:10:07.8797285Z             {
2026-06-15T15:10:07.8797415Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8797524Z               "line": 295
2026-06-15T15:10:07.8797629Z             },
2026-06-15T15:10:07.8797735Z             {
2026-06-15T15:10:07.8797876Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8797991Z               "line": 417
2026-06-15T15:10:07.8798093Z             },
2026-06-15T15:10:07.8798196Z             {
2026-06-15T15:10:07.8798341Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T15:10:07.8798450Z               "line": 252
2026-06-15T15:10:07.8798553Z             },
2026-06-15T15:10:07.8798648Z             {
2026-06-15T15:10:07.8798777Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8798889Z               "line": 3317
2026-06-15T15:10:07.8799047Z             },
2026-06-15T15:10:07.8799142Z             {
2026-06-15T15:10:07.8799270Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8799390Z               "line": 3818
2026-06-15T15:10:07.8799495Z             },
2026-06-15T15:10:07.8799599Z             {
2026-06-15T15:10:07.8799724Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8799828Z               "line": 4447
2026-06-15T15:10:07.8799943Z             }
2026-06-15T15:10:07.8800044Z           ]
2026-06-15T15:10:07.8800134Z         },
2026-06-15T15:10:07.8800234Z         "int": {
2026-06-15T15:10:07.8800354Z           "complete": true,
2026-06-15T15:10:07.8800462Z           "evidence": [
2026-06-15T15:10:07.8800558Z             {
2026-06-15T15:10:07.8800711Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-15T15:10:07.8800830Z               "line": 22
2026-06-15T15:10:07.8800931Z             },
2026-06-15T15:10:07.8801031Z             {
2026-06-15T15:10:07.8801181Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8801296Z               "line": 576
2026-06-15T15:10:07.8801394Z             },
2026-06-15T15:10:07.8801613Z             {
2026-06-15T15:10:07.8801757Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8801866Z               "line": 793
2026-06-15T15:10:07.8801967Z             }
2026-06-15T15:10:07.8802071Z           ]
2026-06-15T15:10:07.8802171Z         },
2026-06-15T15:10:07.8802276Z         "unit": {
2026-06-15T15:10:07.8802391Z           "complete": true,
2026-06-15T15:10:07.8802496Z           "evidence": [
2026-06-15T15:10:07.8802596Z             {
2026-06-15T15:10:07.8802743Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8802844Z               "line": 586
2026-06-15T15:10:07.8803073Z             },
2026-06-15T15:10:07.8803169Z             {
2026-06-15T15:10:07.8803292Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8803392Z               "line": 8418
2026-06-15T15:10:07.8803503Z             },
2026-06-15T15:10:07.8803606Z             {
2026-06-15T15:10:07.8803730Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8803846Z               "line": 9112
2026-06-15T15:10:07.8803949Z             }
2026-06-15T15:10:07.8804044Z           ]
2026-06-15T15:10:07.8804145Z         }
2026-06-15T15:10:07.8804250Z       }
2026-06-15T15:10:07.8804349Z     },
2026-06-15T15:10:07.8804450Z     {
2026-06-15T15:10:07.8804569Z       "id": "REQ-SUBNET-3",
2026-06-15T15:10:07.8804865Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-15T15:10:07.8804988Z       "requiredStages": [
2026-06-15T15:10:07.8805089Z         "impl",
2026-06-15T15:10:07.8805194Z         "unit"
2026-06-15T15:10:07.8805298Z       ],
2026-06-15T15:10:07.8805394Z       "stages": {
2026-06-15T15:10:07.8805504Z         "doc": {
2026-06-15T15:10:07.8805618Z           "complete": false,
2026-06-15T15:10:07.8805733Z           "evidence": []
2026-06-15T15:10:07.8805833Z         },
2026-06-15T15:10:07.8805937Z         "impl": {
2026-06-15T15:10:07.8806058Z           "complete": true,
2026-06-15T15:10:07.8806161Z           "evidence": [
2026-06-15T15:10:07.8806265Z             {
2026-06-15T15:10:07.8806413Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8806516Z               "line": 152
2026-06-15T15:10:07.8806620Z             },
2026-06-15T15:10:07.8806721Z             {
2026-06-15T15:10:07.8806878Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8806992Z               "line": 299
2026-06-15T15:10:07.8807088Z             },
2026-06-15T15:10:07.8807183Z             {
2026-06-15T15:10:07.8807336Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8807445Z               "line": 437
2026-06-15T15:10:07.8807545Z             },
2026-06-15T15:10:07.8807651Z             {
2026-06-15T15:10:07.8807799Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8807908Z               "line": 480
2026-06-15T15:10:07.8808009Z             },
2026-06-15T15:10:07.8808118Z             {
2026-06-15T15:10:07.8808266Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8808371Z               "line": 125
2026-06-15T15:10:07.8808461Z             },
2026-06-15T15:10:07.8808552Z             {
2026-06-15T15:10:07.8808700Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8808804Z               "line": 253
2026-06-15T15:10:07.8808906Z             },
2026-06-15T15:10:07.8809066Z             {
2026-06-15T15:10:07.8809208Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8809314Z               "line": 264
2026-06-15T15:10:07.8809416Z             },
2026-06-15T15:10:07.8809530Z             {
2026-06-15T15:10:07.8809669Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8809788Z               "line": 285
2026-06-15T15:10:07.8809888Z             },
2026-06-15T15:10:07.8809993Z             {
2026-06-15T15:10:07.8810131Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8810347Z               "line": 589
2026-06-15T15:10:07.8810446Z             },
2026-06-15T15:10:07.8810542Z             {
2026-06-15T15:10:07.8810685Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8810789Z               "line": 648
2026-06-15T15:10:07.8810891Z             },
2026-06-15T15:10:07.8810985Z             {
2026-06-15T15:10:07.8811123Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T15:10:07.8811238Z               "line": 61
2026-06-15T15:10:07.8811352Z             },
2026-06-15T15:10:07.8811453Z             {
2026-06-15T15:10:07.8811609Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T15:10:07.8811837Z               "line": 90
2026-06-15T15:10:07.8811936Z             },
2026-06-15T15:10:07.8812040Z             {
2026-06-15T15:10:07.8812183Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T15:10:07.8812283Z               "line": 125
2026-06-15T15:10:07.8812387Z             },
2026-06-15T15:10:07.8812489Z             {
2026-06-15T15:10:07.8812631Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T15:10:07.8812731Z               "line": 9
2026-06-15T15:10:07.8812832Z             },
2026-06-15T15:10:07.8812932Z             {
2026-06-15T15:10:07.8813061Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8813175Z               "line": 3655
2026-06-15T15:10:07.8813275Z             },
2026-06-15T15:10:07.8813375Z             {
2026-06-15T15:10:07.8813509Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.8813623Z               "line": 445
2026-06-15T15:10:07.8813729Z             }
2026-06-15T15:10:07.8813837Z           ]
2026-06-15T15:10:07.8813928Z         },
2026-06-15T15:10:07.8814039Z         "int": {
2026-06-15T15:10:07.8814143Z           "complete": false,
2026-06-15T15:10:07.8814243Z           "evidence": []
2026-06-15T15:10:07.8814344Z         },
2026-06-15T15:10:07.8814453Z         "unit": {
2026-06-15T15:10:07.8814571Z           "complete": true,
2026-06-15T15:10:07.8814680Z           "evidence": [
2026-06-15T15:10:07.8814777Z             {
2026-06-15T15:10:07.8814928Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8815034Z               "line": 1304
2026-06-15T15:10:07.8815134Z             },
2026-06-15T15:10:07.8815229Z             {
2026-06-15T15:10:07.8815373Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8815473Z               "line": 1606
2026-06-15T15:10:07.8815581Z             },
2026-06-15T15:10:07.8815683Z             {
2026-06-15T15:10:07.8815830Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T15:10:07.8815949Z               "line": 888
2026-06-15T15:10:07.8816055Z             },
2026-06-15T15:10:07.8816150Z             {
2026-06-15T15:10:07.8816299Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8816416Z               "line": 959
2026-06-15T15:10:07.8816521Z             },
2026-06-15T15:10:07.8816632Z             {
2026-06-15T15:10:07.8816778Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8816887Z               "line": 1009
2026-06-15T15:10:07.8816992Z             },
2026-06-15T15:10:07.8817095Z             {
2026-06-15T15:10:07.8817238Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8817343Z               "line": 1068
2026-06-15T15:10:07.8817452Z             },
2026-06-15T15:10:07.8817547Z             {
2026-06-15T15:10:07.8817701Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T15:10:07.8817800Z               "line": 234
2026-06-15T15:10:07.8817901Z             },
2026-06-15T15:10:07.8818005Z             {
2026-06-15T15:10:07.8818148Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T15:10:07.8818249Z               "line": 49
2026-06-15T15:10:07.8818344Z             },
2026-06-15T15:10:07.8818434Z             {
2026-06-15T15:10:07.8818554Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8818744Z               "line": 8754
2026-06-15T15:10:07.8818846Z             },
2026-06-15T15:10:07.8819011Z             {
2026-06-15T15:10:07.8819136Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8819237Z               "line": 8860
2026-06-15T15:10:07.8819330Z             },
2026-06-15T15:10:07.8819437Z             {
2026-06-15T15:10:07.8819552Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8819664Z               "line": 9078
2026-06-15T15:10:07.8819763Z             }
2026-06-15T15:10:07.8819859Z           ]
2026-06-15T15:10:07.8819958Z         }
2026-06-15T15:10:07.8820057Z       }
2026-06-15T15:10:07.8820254Z     },
2026-06-15T15:10:07.8820352Z     {
2026-06-15T15:10:07.8820473Z       "id": "REQ-SUBNET-4",
2026-06-15T15:10:07.8820778Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-15T15:10:07.8820897Z       "requiredStages": [
2026-06-15T15:10:07.8820991Z         "impl",
2026-06-15T15:10:07.8821093Z         "unit"
2026-06-15T15:10:07.8821197Z       ],
2026-06-15T15:10:07.8821301Z       "stages": {
2026-06-15T15:10:07.8821398Z         "doc": {
2026-06-15T15:10:07.8821502Z           "complete": true,
2026-06-15T15:10:07.8821616Z           "evidence": [
2026-06-15T15:10:07.8821713Z             {
2026-06-15T15:10:07.8821902Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T15:10:07.8822013Z               "line": 60
2026-06-15T15:10:07.8822109Z             }
2026-06-15T15:10:07.8822212Z           ]
2026-06-15T15:10:07.8822306Z         },
2026-06-15T15:10:07.8822412Z         "impl": {
2026-06-15T15:10:07.8822528Z           "complete": true,
2026-06-15T15:10:07.8822628Z           "evidence": [
2026-06-15T15:10:07.8822724Z             {
2026-06-15T15:10:07.8822853Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8822972Z               "line": 2961
2026-06-15T15:10:07.8823068Z             },
2026-06-15T15:10:07.8823177Z             {
2026-06-15T15:10:07.8823296Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8823401Z               "line": 4414
2026-06-15T15:10:07.8823497Z             },
2026-06-15T15:10:07.8823596Z             {
2026-06-15T15:10:07.8823726Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8823835Z               "line": 4447
2026-06-15T15:10:07.8823935Z             }
2026-06-15T15:10:07.8824036Z           ]
2026-06-15T15:10:07.8824136Z         },
2026-06-15T15:10:07.8824240Z         "int": {
2026-06-15T15:10:07.8824356Z           "complete": false,
2026-06-15T15:10:07.8824469Z           "evidence": []
2026-06-15T15:10:07.8824575Z         },
2026-06-15T15:10:07.8824680Z         "unit": {
2026-06-15T15:10:07.8824789Z           "complete": true,
2026-06-15T15:10:07.8824895Z           "evidence": [
2026-06-15T15:10:07.8824999Z             {
2026-06-15T15:10:07.8825122Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8825240Z               "line": 8534
2026-06-15T15:10:07.8825342Z             },
2026-06-15T15:10:07.8825446Z             {
2026-06-15T15:10:07.8825570Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8825675Z               "line": 8608
2026-06-15T15:10:07.8825779Z             }
2026-06-15T15:10:07.8825880Z           ]
2026-06-15T15:10:07.8825985Z         }
2026-06-15T15:10:07.8826084Z       }
2026-06-15T15:10:07.8826181Z     },
2026-06-15T15:10:07.8826280Z     {
2026-06-15T15:10:07.8826404Z       "id": "REQ-SUBNET-5",
2026-06-15T15:10:07.8827622Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-15T15:10:07.8827750Z       "requiredStages": [
2026-06-15T15:10:07.8827860Z         "impl",
2026-06-15T15:10:07.8828064Z         "unit",
2026-06-15T15:10:07.8828165Z         "int"
2026-06-15T15:10:07.8828270Z       ],
2026-06-15T15:10:07.8828374Z       "stages": {
2026-06-15T15:10:07.8828471Z         "doc": {
2026-06-15T15:10:07.8828590Z           "complete": false,
2026-06-15T15:10:07.8828698Z           "evidence": []
2026-06-15T15:10:07.8828800Z         },
2026-06-15T15:10:07.8828904Z         "impl": {
2026-06-15T15:10:07.8829071Z           "complete": true,
2026-06-15T15:10:07.8829172Z           "evidence": [
2026-06-15T15:10:07.8829276Z             {
2026-06-15T15:10:07.8829430Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T15:10:07.8829638Z               "line": 126
2026-06-15T15:10:07.8829745Z             },
2026-06-15T15:10:07.8829848Z             {
2026-06-15T15:10:07.8829997Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T15:10:07.8830097Z               "line": 413
2026-06-15T15:10:07.8830201Z             },
2026-06-15T15:10:07.8830310Z             {
2026-06-15T15:10:07.8830457Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8830565Z               "line": 74
2026-06-15T15:10:07.8830665Z             },
2026-06-15T15:10:07.8830761Z             {
2026-06-15T15:10:07.8830908Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.8831014Z               "line": 332
2026-06-15T15:10:07.8831113Z             },
2026-06-15T15:10:07.8831213Z             {
2026-06-15T15:10:07.8831357Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.8831462Z               "line": 621
2026-06-15T15:10:07.8831561Z             },
2026-06-15T15:10:07.8831672Z             {
2026-06-15T15:10:07.8831824Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T15:10:07.8831929Z               "line": 31
2026-06-15T15:10:07.8832030Z             },
2026-06-15T15:10:07.8832119Z             {
2026-06-15T15:10:07.8832268Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T15:10:07.8832387Z               "line": 50
2026-06-15T15:10:07.8832487Z             },
2026-06-15T15:10:07.8832598Z             {
2026-06-15T15:10:07.8832744Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T15:10:07.8832848Z               "line": 69
2026-06-15T15:10:07.8832957Z             },
2026-06-15T15:10:07.8833056Z             {
2026-06-15T15:10:07.8833207Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T15:10:07.8833314Z               "line": 113
2026-06-15T15:10:07.8833418Z             },
2026-06-15T15:10:07.8833522Z             {
2026-06-15T15:10:07.8833666Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T15:10:07.8833784Z               "line": 25
2026-06-15T15:10:07.8833886Z             },
2026-06-15T15:10:07.8833995Z             {
2026-06-15T15:10:07.8834143Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T15:10:07.8834244Z               "line": 34
2026-06-15T15:10:07.8834338Z             },
2026-06-15T15:10:07.8834448Z             {
2026-06-15T15:10:07.8834601Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T15:10:07.8834705Z               "line": 17
2026-06-15T15:10:07.8834815Z             },
2026-06-15T15:10:07.8834916Z             {
2026-06-15T15:10:07.8835053Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8835150Z               "line": 4372
2026-06-15T15:10:07.8835254Z             },
2026-06-15T15:10:07.8835363Z             {
2026-06-15T15:10:07.8835484Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T15:10:07.8835588Z               "line": 419
2026-06-15T15:10:07.8835691Z             }
2026-06-15T15:10:07.8835805Z           ]
2026-06-15T15:10:07.8835907Z         },
2026-06-15T15:10:07.8836006Z         "int": {
2026-06-15T15:10:07.8836125Z           "complete": true,
2026-06-15T15:10:07.8836235Z           "evidence": [
2026-06-15T15:10:07.8836349Z             {
2026-06-15T15:10:07.8836498Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T15:10:07.8836711Z               "line": 817
2026-06-15T15:10:07.8836813Z             }
2026-06-15T15:10:07.8836922Z           ]
2026-06-15T15:10:07.8837021Z         },
2026-06-15T15:10:07.8837128Z         "unit": {
2026-06-15T15:10:07.8837241Z           "complete": true,
2026-06-15T15:10:07.8837346Z           "evidence": [
2026-06-15T15:10:07.8837447Z             {
2026-06-15T15:10:07.8837593Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T15:10:07.8837699Z               "line": 341
2026-06-15T15:10:07.8837804Z             },
2026-06-15T15:10:07.8837908Z             {
2026-06-15T15:10:07.8838050Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T15:10:07.8838234Z               "line": 1115
2026-06-15T15:10:07.8838344Z             },
2026-06-15T15:10:07.8838445Z             {
2026-06-15T15:10:07.8838587Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T15:10:07.8838702Z               "line": 151
2026-06-15T15:10:07.8838807Z             },
2026-06-15T15:10:07.8838906Z             {
2026-06-15T15:10:07.8839140Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T15:10:07.8839254Z               "line": 61
2026-06-15T15:10:07.8839351Z             },
2026-06-15T15:10:07.8839465Z             {
2026-06-15T15:10:07.8839612Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T15:10:07.8839718Z               "line": 111
2026-06-15T15:10:07.8839831Z             },
2026-06-15T15:10:07.8839932Z             {
2026-06-15T15:10:07.8840079Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T15:10:07.8840180Z               "line": 138
2026-06-15T15:10:07.8840286Z             },
2026-06-15T15:10:07.8840385Z             {
2026-06-15T15:10:07.8840528Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T15:10:07.8840639Z               "line": 148
2026-06-15T15:10:07.8840742Z             },
2026-06-15T15:10:07.8840846Z             {
2026-06-15T15:10:07.8840975Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8841082Z               "line": 8435
2026-06-15T15:10:07.8841187Z             }
2026-06-15T15:10:07.8841292Z           ]
2026-06-15T15:10:07.8841397Z         }
2026-06-15T15:10:07.8841496Z       }
2026-06-15T15:10:07.8841598Z     },
2026-06-15T15:10:07.8841693Z     {
2026-06-15T15:10:07.8841797Z       "id": "REQ-SUBNET-6",
2026-06-15T15:10:07.8842533Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-15T15:10:07.8842661Z       "requiredStages": [
2026-06-15T15:10:07.8842760Z         "impl",
2026-06-15T15:10:07.8842867Z         "unit"
2026-06-15T15:10:07.8842975Z       ],
2026-06-15T15:10:07.8843070Z       "stages": {
2026-06-15T15:10:07.8843177Z         "doc": {
2026-06-15T15:10:07.8843290Z           "complete": false,
2026-06-15T15:10:07.8843403Z           "evidence": []
2026-06-15T15:10:07.8843508Z         },
2026-06-15T15:10:07.8843617Z         "impl": {
2026-06-15T15:10:07.8843730Z           "complete": true,
2026-06-15T15:10:07.8843849Z           "evidence": [
2026-06-15T15:10:07.8843950Z             {
2026-06-15T15:10:07.8844106Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8844208Z               "line": 254
2026-06-15T15:10:07.8844307Z             },
2026-06-15T15:10:07.8844407Z             {
2026-06-15T15:10:07.8844541Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8844650Z               "line": 4030
2026-06-15T15:10:07.8844751Z             },
2026-06-15T15:10:07.8844856Z             {
2026-06-15T15:10:07.8844979Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8845085Z               "line": 4047
2026-06-15T15:10:07.8845180Z             },
2026-06-15T15:10:07.8845284Z             {
2026-06-15T15:10:07.8845410Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8845623Z               "line": 4100
2026-06-15T15:10:07.8845729Z             },
2026-06-15T15:10:07.8845838Z             {
2026-06-15T15:10:07.8845971Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8846082Z               "line": 4123
2026-06-15T15:10:07.8846185Z             }
2026-06-15T15:10:07.8846285Z           ]
2026-06-15T15:10:07.8846385Z         },
2026-06-15T15:10:07.8846496Z         "int": {
2026-06-15T15:10:07.8846609Z           "complete": false,
2026-06-15T15:10:07.8846724Z           "evidence": []
2026-06-15T15:10:07.8846825Z         },
2026-06-15T15:10:07.8846928Z         "unit": {
2026-06-15T15:10:07.8847158Z           "complete": true,
2026-06-15T15:10:07.8847267Z           "evidence": [
2026-06-15T15:10:07.8847368Z             {
2026-06-15T15:10:07.8847487Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8847605Z               "line": 8449
2026-06-15T15:10:07.8847702Z             },
2026-06-15T15:10:07.8847811Z             {
2026-06-15T15:10:07.8847935Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8848040Z               "line": 8482
2026-06-15T15:10:07.8848139Z             },
2026-06-15T15:10:07.8848240Z             {
2026-06-15T15:10:07.8848369Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8848463Z               "line": 8491
2026-06-15T15:10:07.8848567Z             }
2026-06-15T15:10:07.8848668Z           ]
2026-06-15T15:10:07.8848766Z         }
2026-06-15T15:10:07.8848870Z       }
2026-06-15T15:10:07.8849029Z     },
2026-06-15T15:10:07.8849128Z     {
2026-06-15T15:10:07.8849242Z       "id": "REQ-SUBNET-7",
2026-06-15T15:10:07.8850926Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-15T15:10:07.8851050Z       "requiredStages": [
2026-06-15T15:10:07.8851151Z         "impl",
2026-06-15T15:10:07.8851251Z         "unit"
2026-06-15T15:10:07.8851354Z       ],
2026-06-15T15:10:07.8851459Z       "stages": {
2026-06-15T15:10:07.8851563Z         "doc": {
2026-06-15T15:10:07.8851671Z           "complete": false,
2026-06-15T15:10:07.8851781Z           "evidence": []
2026-06-15T15:10:07.8851886Z         },
2026-06-15T15:10:07.8851995Z         "impl": {
2026-06-15T15:10:07.8852114Z           "complete": true,
2026-06-15T15:10:07.8852220Z           "evidence": [
2026-06-15T15:10:07.8852319Z             {
2026-06-15T15:10:07.8852468Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T15:10:07.8852582Z               "line": 17
2026-06-15T15:10:07.8852681Z             },
2026-06-15T15:10:07.8852788Z             {
2026-06-15T15:10:07.8852940Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8853044Z               "line": 103
2026-06-15T15:10:07.8853140Z             },
2026-06-15T15:10:07.8853244Z             {
2026-06-15T15:10:07.8853393Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T15:10:07.8853498Z               "line": 312
2026-06-15T15:10:07.8853602Z             },
2026-06-15T15:10:07.8853703Z             {
2026-06-15T15:10:07.8853864Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T15:10:07.8853968Z               "line": 131
2026-06-15T15:10:07.8854069Z             },
2026-06-15T15:10:07.8854186Z             {
2026-06-15T15:10:07.8854337Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8854453Z               "line": 160
2026-06-15T15:10:07.8854557Z             },
2026-06-15T15:10:07.8854657Z             {
2026-06-15T15:10:07.8854815Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8855025Z               "line": 441
2026-06-15T15:10:07.8855129Z             },
2026-06-15T15:10:07.8855229Z             {
2026-06-15T15:10:07.8855378Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8855497Z               "line": 618
2026-06-15T15:10:07.8855592Z             },
2026-06-15T15:10:07.8855693Z             {
2026-06-15T15:10:07.8855840Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8855945Z               "line": 658
2026-06-15T15:10:07.8856050Z             },
2026-06-15T15:10:07.8856150Z             {
2026-06-15T15:10:07.8856299Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8856512Z               "line": 714
2026-06-15T15:10:07.8856618Z             },
2026-06-15T15:10:07.8856718Z             {
2026-06-15T15:10:07.8856873Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8856979Z               "line": 136
2026-06-15T15:10:07.8857084Z             },
2026-06-15T15:10:07.8857183Z             {
2026-06-15T15:10:07.8857327Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8857445Z               "line": 139
2026-06-15T15:10:07.8857541Z             }
2026-06-15T15:10:07.8857642Z           ]
2026-06-15T15:10:07.8857742Z         },
2026-06-15T15:10:07.8857841Z         "int": {
2026-06-15T15:10:07.8857961Z           "complete": false,
2026-06-15T15:10:07.8858061Z           "evidence": []
2026-06-15T15:10:07.8858165Z         },
2026-06-15T15:10:07.8858267Z         "unit": {
2026-06-15T15:10:07.8858386Z           "complete": true,
2026-06-15T15:10:07.8858495Z           "evidence": [
2026-06-15T15:10:07.8858591Z             {
2026-06-15T15:10:07.8858747Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T15:10:07.8858849Z               "line": 136
2026-06-15T15:10:07.8859014Z             },
2026-06-15T15:10:07.8859108Z             {
2026-06-15T15:10:07.8859261Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T15:10:07.8859369Z               "line": 156
2026-06-15T15:10:07.8859474Z             },
2026-06-15T15:10:07.8859574Z             {
2026-06-15T15:10:07.8859721Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8859836Z               "line": 935
2026-06-15T15:10:07.8859932Z             },
2026-06-15T15:10:07.8860036Z             {
2026-06-15T15:10:07.8860180Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T15:10:07.8860285Z               "line": 957
2026-06-15T15:10:07.8860389Z             },
2026-06-15T15:10:07.8860490Z             {
2026-06-15T15:10:07.8860651Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T15:10:07.8860766Z               "line": 1419
2026-06-15T15:10:07.8860870Z             },
2026-06-15T15:10:07.8860971Z             {
2026-06-15T15:10:07.8861115Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T15:10:07.8861233Z               "line": 1004
2026-06-15T15:10:07.8861338Z             }
2026-06-15T15:10:07.8861440Z           ]
2026-06-15T15:10:07.8861542Z         }
2026-06-15T15:10:07.8861648Z       }
2026-06-15T15:10:07.8861750Z     },
2026-06-15T15:10:07.8861853Z     {
2026-06-15T15:10:07.8861971Z       "id": "REQ-SUBNET-8",
2026-06-15T15:10:07.8863085Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-15T15:10:07.8863213Z       "requiredStages": [
2026-06-15T15:10:07.8863323Z         "impl",
2026-06-15T15:10:07.8863423Z         "unit"
2026-06-15T15:10:07.8863528Z       ],
2026-06-15T15:10:07.8863633Z       "stages": {
2026-06-15T15:10:07.8863738Z         "doc": {
2026-06-15T15:10:07.8863963Z           "complete": false,
2026-06-15T15:10:07.8864086Z           "evidence": []
2026-06-15T15:10:07.8864186Z         },
2026-06-15T15:10:07.8864287Z         "impl": {
2026-06-15T15:10:07.8864406Z           "complete": true,
2026-06-15T15:10:07.8864509Z           "evidence": [
2026-06-15T15:10:07.8864609Z             {
2026-06-15T15:10:07.8864732Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8864840Z               "line": 3397
2026-06-15T15:10:07.8864936Z             },
2026-06-15T15:10:07.8865037Z             {
2026-06-15T15:10:07.8865169Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8865266Z               "line": 3426
2026-06-15T15:10:07.8865465Z             },
2026-06-15T15:10:07.8865566Z             {
2026-06-15T15:10:07.8865699Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8865803Z               "line": 3443
2026-06-15T15:10:07.8865905Z             },
2026-06-15T15:10:07.8866014Z             {
2026-06-15T15:10:07.8866142Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8866263Z               "line": 3466
2026-06-15T15:10:07.8866367Z             },
2026-06-15T15:10:07.8866471Z             {
2026-06-15T15:10:07.8866606Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8866710Z               "line": 3880
2026-06-15T15:10:07.8866806Z             }
2026-06-15T15:10:07.8866907Z           ]
2026-06-15T15:10:07.8869854Z         },
2026-06-15T15:10:07.8869981Z         "int": {
2026-06-15T15:10:07.8870106Z           "complete": false,
2026-06-15T15:10:07.8870224Z           "evidence": []
2026-06-15T15:10:07.8870324Z         },
2026-06-15T15:10:07.8870426Z         "unit": {
2026-06-15T15:10:07.8870553Z           "complete": true,
2026-06-15T15:10:07.8870663Z           "evidence": [
2026-06-15T15:10:07.8870755Z             {
2026-06-15T15:10:07.8870896Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8871017Z               "line": 8639
2026-06-15T15:10:07.8871121Z             },
2026-06-15T15:10:07.8871220Z             {
2026-06-15T15:10:07.8871355Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8871464Z               "line": 8655
2026-06-15T15:10:07.8871569Z             }
2026-06-15T15:10:07.8871680Z           ]
2026-06-15T15:10:07.8871779Z         }
2026-06-15T15:10:07.8871879Z       }
2026-06-15T15:10:07.8871971Z     },
2026-06-15T15:10:07.8872066Z     {
2026-06-15T15:10:07.8872179Z       "id": "REQ-TERM-1",
2026-06-15T15:10:07.8872390Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-15T15:10:07.8872513Z       "requiredStages": [
2026-06-15T15:10:07.8872612Z         "impl",
2026-06-15T15:10:07.8872712Z         "unit"
2026-06-15T15:10:07.8872820Z       ],
2026-06-15T15:10:07.8872925Z       "stages": {
2026-06-15T15:10:07.8873030Z         "doc": {
2026-06-15T15:10:07.8873144Z           "complete": false,
2026-06-15T15:10:07.8873259Z           "evidence": []
2026-06-15T15:10:07.8873364Z         },
2026-06-15T15:10:07.8873468Z         "impl": {
2026-06-15T15:10:07.8873589Z           "complete": true,
2026-06-15T15:10:07.8873698Z           "evidence": [
2026-06-15T15:10:07.8873802Z             {
2026-06-15T15:10:07.8873941Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T15:10:07.8874055Z               "line": 59
2026-06-15T15:10:07.8874159Z             },
2026-06-15T15:10:07.8874261Z             {
2026-06-15T15:10:07.8874398Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T15:10:07.8874509Z               "line": 195
2026-06-15T15:10:07.8874613Z             },
2026-06-15T15:10:07.8874703Z             {
2026-06-15T15:10:07.8874852Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T15:10:07.8874975Z               "line": 100
2026-06-15T15:10:07.8875079Z             }
2026-06-15T15:10:07.8875179Z           ]
2026-06-15T15:10:07.8875283Z         },
2026-06-15T15:10:07.8875382Z         "int": {
2026-06-15T15:10:07.8875491Z           "complete": false,
2026-06-15T15:10:07.8875597Z           "evidence": []
2026-06-15T15:10:07.8875831Z         },
2026-06-15T15:10:07.8875935Z         "unit": {
2026-06-15T15:10:07.8876054Z           "complete": true,
2026-06-15T15:10:07.8876155Z           "evidence": [
2026-06-15T15:10:07.8876250Z             {
2026-06-15T15:10:07.8876392Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T15:10:07.8876503Z               "line": 24
2026-06-15T15:10:07.8876602Z             },
2026-06-15T15:10:07.8876707Z             {
2026-06-15T15:10:07.8876846Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T15:10:07.8876946Z               "line": 56
2026-06-15T15:10:07.8877046Z             }
2026-06-15T15:10:07.8877147Z           ]
2026-06-15T15:10:07.8877356Z         }
2026-06-15T15:10:07.8877452Z       }
2026-06-15T15:10:07.8877551Z     },
2026-06-15T15:10:07.8877647Z     {
2026-06-15T15:10:07.8877753Z       "id": "REQ-TERM-2",
2026-06-15T15:10:07.8877965Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-15T15:10:07.8878085Z       "requiredStages": [
2026-06-15T15:10:07.8878195Z         "impl",
2026-06-15T15:10:07.8878294Z         "unit"
2026-06-15T15:10:07.8878395Z       ],
2026-06-15T15:10:07.8878500Z       "stages": {
2026-06-15T15:10:07.8878599Z         "doc": {
2026-06-15T15:10:07.8878719Z           "complete": false,
2026-06-15T15:10:07.8878824Z           "evidence": []
2026-06-15T15:10:07.8878932Z         },
2026-06-15T15:10:07.8879096Z         "impl": {
2026-06-15T15:10:07.8879205Z           "complete": true,
2026-06-15T15:10:07.8879310Z           "evidence": [
2026-06-15T15:10:07.8879411Z             {
2026-06-15T15:10:07.8879553Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T15:10:07.8879673Z               "line": 117
2026-06-15T15:10:07.8879777Z             },
2026-06-15T15:10:07.8879877Z             {
2026-06-15T15:10:07.8880017Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T15:10:07.8880130Z               "line": 127
2026-06-15T15:10:07.8880224Z             }
2026-06-15T15:10:07.8880319Z           ]
2026-06-15T15:10:07.8880409Z         },
2026-06-15T15:10:07.8880518Z         "int": {
2026-06-15T15:10:07.8880632Z           "complete": false,
2026-06-15T15:10:07.8880729Z           "evidence": []
2026-06-15T15:10:07.8880832Z         },
2026-06-15T15:10:07.8880938Z         "unit": {
2026-06-15T15:10:07.8881057Z           "complete": true,
2026-06-15T15:10:07.8881161Z           "evidence": [
2026-06-15T15:10:07.8881257Z             {
2026-06-15T15:10:07.8881400Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T15:10:07.8881499Z               "line": 46
2026-06-15T15:10:07.8881596Z             },
2026-06-15T15:10:07.8881695Z             {
2026-06-15T15:10:07.8881848Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T15:10:07.8881954Z               "line": 77
2026-06-15T15:10:07.8882058Z             }
2026-06-15T15:10:07.8882163Z           ]
2026-06-15T15:10:07.8882259Z         }
2026-06-15T15:10:07.8882357Z       }
2026-06-15T15:10:07.8882453Z     },
2026-06-15T15:10:07.8882560Z     {
2026-06-15T15:10:07.8882672Z       "id": "REQ-TERM-3",
2026-06-15T15:10:07.8882846Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-15T15:10:07.8882950Z       "requiredStages": [
2026-06-15T15:10:07.8883053Z         "impl",
2026-06-15T15:10:07.8883154Z         "unit"
2026-06-15T15:10:07.8883258Z       ],
2026-06-15T15:10:07.8883366Z       "stages": {
2026-06-15T15:10:07.8883461Z         "doc": {
2026-06-15T15:10:07.8883566Z           "complete": false,
2026-06-15T15:10:07.8883675Z           "evidence": []
2026-06-15T15:10:07.8883780Z         },
2026-06-15T15:10:07.8883881Z         "impl": {
2026-06-15T15:10:07.8883995Z           "complete": true,
2026-06-15T15:10:07.8884110Z           "evidence": [
2026-06-15T15:10:07.8884206Z             {
2026-06-15T15:10:07.8884410Z               "path": "crates/spt-term/src/stream.rs",
2026-06-15T15:10:07.8884520Z               "line": 71
2026-06-15T15:10:07.8884615Z             }
2026-06-15T15:10:07.8884849Z           ]
2026-06-15T15:10:07.8884949Z         },
2026-06-15T15:10:07.8885049Z         "int": {
2026-06-15T15:10:07.8885164Z           "complete": false,
2026-06-15T15:10:07.8885278Z           "evidence": []
2026-06-15T15:10:07.8885389Z         },
2026-06-15T15:10:07.8885484Z         "unit": {
2026-06-15T15:10:07.8885596Z           "complete": true,
2026-06-15T15:10:07.8885701Z           "evidence": [
2026-06-15T15:10:07.8885801Z             {
2026-06-15T15:10:07.8885942Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T15:10:07.8886042Z               "line": 37
2026-06-15T15:10:07.8886148Z             },
2026-06-15T15:10:07.8886252Z             {
2026-06-15T15:10:07.8886505Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T15:10:07.8886619Z               "line": 67
2026-06-15T15:10:07.8886716Z             }
2026-06-15T15:10:07.8886805Z           ]
2026-06-15T15:10:07.8886910Z         }
2026-06-15T15:10:07.8887011Z       }
2026-06-15T15:10:07.8887110Z     },
2026-06-15T15:10:07.8887215Z     {
2026-06-15T15:10:07.8887320Z       "id": "REQ-TERM-4",
2026-06-15T15:10:07.8887859Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-15T15:10:07.8887984Z       "requiredStages": [
2026-06-15T15:10:07.8888078Z         "impl",
2026-06-15T15:10:07.8888188Z         "unit",
2026-06-15T15:10:07.8888284Z         "int"
2026-06-15T15:10:07.8888388Z       ],
2026-06-15T15:10:07.8888488Z       "stages": {
2026-06-15T15:10:07.8888587Z         "doc": {
2026-06-15T15:10:07.8888703Z           "complete": false,
2026-06-15T15:10:07.8888821Z           "evidence": []
2026-06-15T15:10:07.8888926Z         },
2026-06-15T15:10:07.8889098Z         "impl": {
2026-06-15T15:10:07.8889212Z           "complete": true,
2026-06-15T15:10:07.8889318Z           "evidence": [
2026-06-15T15:10:07.8889422Z             {
2026-06-15T15:10:07.8889565Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T15:10:07.8889665Z               "line": 37
2026-06-15T15:10:07.8889765Z             },
2026-06-15T15:10:07.8889866Z             {
2026-06-15T15:10:07.8890018Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T15:10:07.8890127Z               "line": 25
2026-06-15T15:10:07.8890229Z             },
2026-06-15T15:10:07.8890328Z             {
2026-06-15T15:10:07.8890471Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T15:10:07.8890586Z               "line": 114
2026-06-15T15:10:07.8890685Z             },
2026-06-15T15:10:07.8890785Z             {
2026-06-15T15:10:07.8890918Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T15:10:07.8891030Z               "line": 267
2026-06-15T15:10:07.8891120Z             },
2026-06-15T15:10:07.8891221Z             {
2026-06-15T15:10:07.8891364Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T15:10:07.8891468Z               "line": 289
2026-06-15T15:10:07.8891579Z             },
2026-06-15T15:10:07.8891679Z             {
2026-06-15T15:10:07.8891818Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T15:10:07.8891922Z               "line": 307
2026-06-15T15:10:07.8892026Z             },
2026-06-15T15:10:07.8892123Z             {
2026-06-15T15:10:07.8892260Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T15:10:07.8892374Z               "line": 33
2026-06-15T15:10:07.8892471Z             },
2026-06-15T15:10:07.8892575Z             {
2026-06-15T15:10:07.8892718Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8892824Z               "line": 52
2026-06-15T15:10:07.8892927Z             },
2026-06-15T15:10:07.8893028Z             {
2026-06-15T15:10:07.8893177Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8893276Z               "line": 180
2026-06-15T15:10:07.8893377Z             },
2026-06-15T15:10:07.8893478Z             {
2026-06-15T15:10:07.8893613Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8893823Z               "line": 190
2026-06-15T15:10:07.8893926Z             },
2026-06-15T15:10:07.8894031Z             {
2026-06-15T15:10:07.8894175Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8894283Z               "line": 250
2026-06-15T15:10:07.8894384Z             },
2026-06-15T15:10:07.8894484Z             {
2026-06-15T15:10:07.8894626Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8894733Z               "line": 280
2026-06-15T15:10:07.8894828Z             },
2026-06-15T15:10:07.8894922Z             {
2026-06-15T15:10:07.8895052Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8895266Z               "line": 291
2026-06-15T15:10:07.8895367Z             },
2026-06-15T15:10:07.8895470Z             {
2026-06-15T15:10:07.8895595Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8895710Z               "line": 1092
2026-06-15T15:10:07.8895818Z             }
2026-06-15T15:10:07.8895915Z           ]
2026-06-15T15:10:07.8896016Z         },
2026-06-15T15:10:07.8896119Z         "int": {
2026-06-15T15:10:07.8896232Z           "complete": true,
2026-06-15T15:10:07.8896333Z           "evidence": [
2026-06-15T15:10:07.8896431Z             {
2026-06-15T15:10:07.8896568Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-15T15:10:07.8896674Z               "line": 18
2026-06-15T15:10:07.8896774Z             }
2026-06-15T15:10:07.8896873Z           ]
2026-06-15T15:10:07.8896971Z         },
2026-06-15T15:10:07.8897075Z         "unit": {
2026-06-15T15:10:07.8897193Z           "complete": true,
2026-06-15T15:10:07.8897309Z           "evidence": [
2026-06-15T15:10:07.8897413Z             {
2026-06-15T15:10:07.8897561Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T15:10:07.8897661Z               "line": 349
2026-06-15T15:10:07.8897761Z             },
2026-06-15T15:10:07.8897861Z             {
2026-06-15T15:10:07.8897995Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T15:10:07.8898104Z               "line": 401
2026-06-15T15:10:07.8898205Z             },
2026-06-15T15:10:07.8898309Z             {
2026-06-15T15:10:07.8898453Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T15:10:07.8898568Z               "line": 411
2026-06-15T15:10:07.8898671Z             },
2026-06-15T15:10:07.8898777Z             {
2026-06-15T15:10:07.8898916Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T15:10:07.8899113Z               "line": 436
2026-06-15T15:10:07.8899215Z             },
2026-06-15T15:10:07.8899310Z             {
2026-06-15T15:10:07.8899457Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T15:10:07.8899563Z               "line": 456
2026-06-15T15:10:07.8899667Z             },
2026-06-15T15:10:07.8899767Z             {
2026-06-15T15:10:07.8899911Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T15:10:07.8900020Z               "line": 478
2026-06-15T15:10:07.8900125Z             },
2026-06-15T15:10:07.8900221Z             {
2026-06-15T15:10:07.8900358Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T15:10:07.8900469Z               "line": 491
2026-06-15T15:10:07.8900573Z             },
2026-06-15T15:10:07.8900673Z             {
2026-06-15T15:10:07.8900813Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T15:10:07.8900911Z               "line": 502
2026-06-15T15:10:07.8901012Z             },
2026-06-15T15:10:07.8901114Z             {
2026-06-15T15:10:07.8901255Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T15:10:07.8901368Z               "line": 108
2026-06-15T15:10:07.8901473Z             },
2026-06-15T15:10:07.8901576Z             {
2026-06-15T15:10:07.8901714Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T15:10:07.8901815Z               "line": 119
2026-06-15T15:10:07.8901915Z             },
2026-06-15T15:10:07.8902019Z             {
2026-06-15T15:10:07.8902253Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T15:10:07.8902363Z               "line": 127
2026-06-15T15:10:07.8902454Z             },
2026-06-15T15:10:07.8902553Z             {
2026-06-15T15:10:07.8902698Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8902802Z               "line": 474
2026-06-15T15:10:07.8902906Z             },
2026-06-15T15:10:07.8903007Z             {
2026-06-15T15:10:07.8903145Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8903263Z               "line": 501
2026-06-15T15:10:07.8903365Z             },
2026-06-15T15:10:07.8903464Z             {
2026-06-15T15:10:07.8903727Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8903826Z               "line": 520
2026-06-15T15:10:07.8903932Z             },
2026-06-15T15:10:07.8904033Z             {
2026-06-15T15:10:07.8904178Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8904283Z               "line": 535
2026-06-15T15:10:07.8904383Z             },
2026-06-15T15:10:07.8904481Z             {
2026-06-15T15:10:07.8904625Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8904735Z               "line": 561
2026-06-15T15:10:07.8904833Z             },
2026-06-15T15:10:07.8904935Z             {
2026-06-15T15:10:07.8905069Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8905182Z               "line": 581
2026-06-15T15:10:07.8905278Z             },
2026-06-15T15:10:07.8905383Z             {
2026-06-15T15:10:07.8905530Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8905646Z               "line": 591
2026-06-15T15:10:07.8905755Z             },
2026-06-15T15:10:07.8905855Z             {
2026-06-15T15:10:07.8906007Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8906112Z               "line": 683
2026-06-15T15:10:07.8906209Z             },
2026-06-15T15:10:07.8906318Z             {
2026-06-15T15:10:07.8906460Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8906566Z               "line": 761
2026-06-15T15:10:07.8906665Z             },
2026-06-15T15:10:07.8906769Z             {
2026-06-15T15:10:07.8906893Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8907006Z               "line": 8206
2026-06-15T15:10:07.8907105Z             }
2026-06-15T15:10:07.8907205Z           ]
2026-06-15T15:10:07.8907311Z         }
2026-06-15T15:10:07.8907410Z       }
2026-06-15T15:10:07.8907511Z     },
2026-06-15T15:10:07.8907616Z     {
2026-06-15T15:10:07.8907729Z       "id": "REQ-TERM-5",
2026-06-15T15:10:07.8909405Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-15T15:10:07.8909528Z       "requiredStages": [
2026-06-15T15:10:07.8909632Z         "doc",
2026-06-15T15:10:07.8909741Z         "impl",
2026-06-15T15:10:07.8909838Z         "unit",
2026-06-15T15:10:07.8909941Z         "int"
2026-06-15T15:10:07.8910037Z       ],
2026-06-15T15:10:07.8910142Z       "stages": {
2026-06-15T15:10:07.8910236Z         "doc": {
2026-06-15T15:10:07.8910342Z           "complete": true,
2026-06-15T15:10:07.8910461Z           "evidence": [
2026-06-15T15:10:07.8910565Z             {
2026-06-15T15:10:07.8910690Z               "path": "docs/MANIFEST.md",
2026-06-15T15:10:07.8910795Z               "line": 167
2026-06-15T15:10:07.8910894Z             }
2026-06-15T15:10:07.8910991Z           ]
2026-06-15T15:10:07.8911091Z         },
2026-06-15T15:10:07.8911311Z         "impl": {
2026-06-15T15:10:07.8911425Z           "complete": true,
2026-06-15T15:10:07.8911538Z           "evidence": [
2026-06-15T15:10:07.8911644Z             {
2026-06-15T15:10:07.8911791Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T15:10:07.8911895Z               "line": 75
2026-06-15T15:10:07.8911996Z             },
2026-06-15T15:10:07.8912099Z             {
2026-06-15T15:10:07.8912245Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T15:10:07.8912361Z               "line": 131
2026-06-15T15:10:07.8912465Z             },
2026-06-15T15:10:07.8912565Z             {
2026-06-15T15:10:07.8912813Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T15:10:07.8912909Z               "line": 22
2026-06-15T15:10:07.8913023Z             },
2026-06-15T15:10:07.8913123Z             {
2026-06-15T15:10:07.8913267Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T15:10:07.8913367Z               "line": 81
2026-06-15T15:10:07.8913481Z             },
2026-06-15T15:10:07.8913587Z             {
2026-06-15T15:10:07.8913719Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T15:10:07.8913838Z               "line": 30
2026-06-15T15:10:07.8913935Z             },
2026-06-15T15:10:07.8914034Z             {
2026-06-15T15:10:07.8914183Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8914283Z               "line": 103
2026-06-15T15:10:07.8914386Z             },
2026-06-15T15:10:07.8914478Z             {
2026-06-15T15:10:07.8914621Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8914720Z               "line": 167
2026-06-15T15:10:07.8914834Z             },
2026-06-15T15:10:07.8914933Z             {
2026-06-15T15:10:07.8915079Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8915190Z               "line": 434
2026-06-15T15:10:07.8915285Z             },
2026-06-15T15:10:07.8915380Z             {
2026-06-15T15:10:07.8915505Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8915619Z               "line": 5076
2026-06-15T15:10:07.8915718Z             },
2026-06-15T15:10:07.8915820Z             {
2026-06-15T15:10:07.8915948Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8916051Z               "line": 5112
2026-06-15T15:10:07.8916149Z             }
2026-06-15T15:10:07.8916248Z           ]
2026-06-15T15:10:07.8916348Z         },
2026-06-15T15:10:07.8916439Z         "int": {
2026-06-15T15:10:07.8916563Z           "complete": true,
2026-06-15T15:10:07.8916681Z           "evidence": [
2026-06-15T15:10:07.8916788Z             {
2026-06-15T15:10:07.8916968Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T15:10:07.8917084Z               "line": 17
2026-06-15T15:10:07.8917188Z             }
2026-06-15T15:10:07.8917291Z           ]
2026-06-15T15:10:07.8917396Z         },
2026-06-15T15:10:07.8917496Z         "unit": {
2026-06-15T15:10:07.8917608Z           "complete": true,
2026-06-15T15:10:07.8917728Z           "evidence": [
2026-06-15T15:10:07.8917828Z             {
2026-06-15T15:10:07.8917980Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T15:10:07.8918095Z               "line": 360
2026-06-15T15:10:07.8918196Z             },
2026-06-15T15:10:07.8918289Z             {
2026-06-15T15:10:07.8918429Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T15:10:07.8918543Z               "line": 153
2026-06-15T15:10:07.8918648Z             },
2026-06-15T15:10:07.8918749Z             {
2026-06-15T15:10:07.8918891Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T15:10:07.8919087Z               "line": 169
2026-06-15T15:10:07.8919201Z             },
2026-06-15T15:10:07.8919301Z             {
2026-06-15T15:10:07.8919444Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T15:10:07.8919553Z               "line": 191
2026-06-15T15:10:07.8919650Z             },
2026-06-15T15:10:07.8919754Z             {
2026-06-15T15:10:07.8920022Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T15:10:07.8920134Z               "line": 202
2026-06-15T15:10:07.8920239Z             },
2026-06-15T15:10:07.8920340Z             {
2026-06-15T15:10:07.8920468Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T15:10:07.8920568Z               "line": 213
2026-06-15T15:10:07.8920674Z             },
2026-06-15T15:10:07.8920778Z             {
2026-06-15T15:10:07.8920926Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.8921036Z               "line": 1147
2026-06-15T15:10:07.8921135Z             },
2026-06-15T15:10:07.8921231Z             {
2026-06-15T15:10:07.8921474Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.8921580Z               "line": 1190
2026-06-15T15:10:07.8921679Z             },
2026-06-15T15:10:07.8921779Z             {
2026-06-15T15:10:07.8921919Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8922041Z               "line": 606
2026-06-15T15:10:07.8922137Z             },
2026-06-15T15:10:07.8922239Z             {
2026-06-15T15:10:07.8922408Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8922546Z               "line": 634
2026-06-15T15:10:07.8922645Z             },
2026-06-15T15:10:07.8922744Z             {
2026-06-15T15:10:07.8922887Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8922992Z               "line": 646
2026-06-15T15:10:07.8923101Z             },
2026-06-15T15:10:07.8923212Z             {
2026-06-15T15:10:07.8923349Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8923469Z               "line": 669
2026-06-15T15:10:07.8923565Z             },
2026-06-15T15:10:07.8923655Z             {
2026-06-15T15:10:07.8923784Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8923879Z               "line": 6981
2026-06-15T15:10:07.8923979Z             },
2026-06-15T15:10:07.8924084Z             {
2026-06-15T15:10:07.8924222Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8924327Z               "line": 7039
2026-06-15T15:10:07.8924428Z             }
2026-06-15T15:10:07.8924532Z           ]
2026-06-15T15:10:07.8924627Z         }
2026-06-15T15:10:07.8924728Z       }
2026-06-15T15:10:07.8924829Z     },
2026-06-15T15:10:07.8924927Z     {
2026-06-15T15:10:07.8925038Z       "id": "REQ-TERM-6",
2026-06-15T15:10:07.8926231Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-15T15:10:07.8926365Z       "requiredStages": [
2026-06-15T15:10:07.8926475Z         "impl",
2026-06-15T15:10:07.8926584Z         "unit",
2026-06-15T15:10:07.8926689Z         "int"
2026-06-15T15:10:07.8926775Z       ],
2026-06-15T15:10:07.8926875Z       "stages": {
2026-06-15T15:10:07.8926975Z         "doc": {
2026-06-15T15:10:07.8927085Z           "complete": false,
2026-06-15T15:10:07.8927189Z           "evidence": []
2026-06-15T15:10:07.8927290Z         },
2026-06-15T15:10:07.8927400Z         "impl": {
2026-06-15T15:10:07.8927513Z           "complete": true,
2026-06-15T15:10:07.8927634Z           "evidence": [
2026-06-15T15:10:07.8927729Z             {
2026-06-15T15:10:07.8927875Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T15:10:07.8927975Z               "line": 132
2026-06-15T15:10:07.8928093Z             },
2026-06-15T15:10:07.8928191Z             {
2026-06-15T15:10:07.8928340Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T15:10:07.8928455Z               "line": 176
2026-06-15T15:10:07.8928554Z             },
2026-06-15T15:10:07.8928660Z             {
2026-06-15T15:10:07.8928798Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T15:10:07.8929084Z               "line": 17
2026-06-15T15:10:07.8929183Z             },
2026-06-15T15:10:07.8929285Z             {
2026-06-15T15:10:07.8929428Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T15:10:07.8929537Z               "line": 96
2026-06-15T15:10:07.8929647Z             },
2026-06-15T15:10:07.8929747Z             {
2026-06-15T15:10:07.8929891Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8930004Z               "line": 319
2026-06-15T15:10:07.8930104Z             },
2026-06-15T15:10:07.8930215Z             {
2026-06-15T15:10:07.8930361Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8930582Z               "line": 396
2026-06-15T15:10:07.8930681Z             }
2026-06-15T15:10:07.8930775Z           ]
2026-06-15T15:10:07.8930866Z         },
2026-06-15T15:10:07.8930972Z         "int": {
2026-06-15T15:10:07.8931090Z           "complete": true,
2026-06-15T15:10:07.8931195Z           "evidence": [
2026-06-15T15:10:07.8931301Z             {
2026-06-15T15:10:07.8931477Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T15:10:07.8931577Z               "line": 18
2026-06-15T15:10:07.8931672Z             }
2026-06-15T15:10:07.8931767Z           ]
2026-06-15T15:10:07.8931873Z         },
2026-06-15T15:10:07.8931978Z         "unit": {
2026-06-15T15:10:07.8932091Z           "complete": true,
2026-06-15T15:10:07.8932197Z           "evidence": [
2026-06-15T15:10:07.8932302Z             {
2026-06-15T15:10:07.8932446Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T15:10:07.8932550Z               "line": 126
2026-06-15T15:10:07.8932663Z             },
2026-06-15T15:10:07.8932765Z             {
2026-06-15T15:10:07.8932907Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T15:10:07.8933015Z               "line": 141
2026-06-15T15:10:07.8933120Z             },
2026-06-15T15:10:07.8933224Z             {
2026-06-15T15:10:07.8933370Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T15:10:07.8933481Z               "line": 157
2026-06-15T15:10:07.8933576Z             },
2026-06-15T15:10:07.8933675Z             {
2026-06-15T15:10:07.8933810Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T15:10:07.8933909Z               "line": 175
2026-06-15T15:10:07.8934009Z             },
2026-06-15T15:10:07.8934111Z             {
2026-06-15T15:10:07.8934257Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8934359Z               "line": 738
2026-06-15T15:10:07.8934458Z             },
2026-06-15T15:10:07.8934553Z             {
2026-06-15T15:10:07.8934702Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8934815Z               "line": 759
2026-06-15T15:10:07.8934920Z             },
2026-06-15T15:10:07.8935022Z             {
2026-06-15T15:10:07.8935163Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T15:10:07.8935283Z               "line": 602
2026-06-15T15:10:07.8935384Z             }
2026-06-15T15:10:07.8935487Z           ]
2026-06-15T15:10:07.8935593Z         }
2026-06-15T15:10:07.8935690Z       }
2026-06-15T15:10:07.8935792Z     },
2026-06-15T15:10:07.8935892Z     {
2026-06-15T15:10:07.8936012Z       "id": "REQ-TERM-7",
2026-06-15T15:10:07.8937216Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-15T15:10:07.8937340Z       "requiredStages": [
2026-06-15T15:10:07.8937459Z         "impl",
2026-06-15T15:10:07.8937555Z         "unit",
2026-06-15T15:10:07.8937659Z         "int"
2026-06-15T15:10:07.8937759Z       ],
2026-06-15T15:10:07.8937974Z       "stages": {
2026-06-15T15:10:07.8938073Z         "doc": {
2026-06-15T15:10:07.8938189Z           "complete": false,
2026-06-15T15:10:07.8938303Z           "evidence": []
2026-06-15T15:10:07.8938397Z         },
2026-06-15T15:10:07.8938502Z         "impl": {
2026-06-15T15:10:07.8938616Z           "complete": true,
2026-06-15T15:10:07.8938719Z           "evidence": [
2026-06-15T15:10:07.8938824Z             {
2026-06-15T15:10:07.8939024Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T15:10:07.8939134Z               "line": 133
2026-06-15T15:10:07.8939230Z             },
2026-06-15T15:10:07.8939339Z             {
2026-06-15T15:10:07.8939587Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T15:10:07.8939691Z               "line": 311
2026-06-15T15:10:07.8939787Z             },
2026-06-15T15:10:07.8939887Z             {
2026-06-15T15:10:07.8940030Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T15:10:07.8940136Z               "line": 15
2026-06-15T15:10:07.8940240Z             },
2026-06-15T15:10:07.8940340Z             {
2026-06-15T15:10:07.8940475Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T15:10:07.8940583Z               "line": 32
2026-06-15T15:10:07.8940683Z             },
2026-06-15T15:10:07.8940790Z             {
2026-06-15T15:10:07.8940936Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T15:10:07.8941056Z               "line": 49
2026-06-15T15:10:07.8941157Z             },
2026-06-15T15:10:07.8941260Z             {
2026-06-15T15:10:07.8941402Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8941503Z               "line": 286
2026-06-15T15:10:07.8941617Z             },
2026-06-15T15:10:07.8941756Z             {
2026-06-15T15:10:07.8941979Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8942104Z               "line": 320
2026-06-15T15:10:07.8942209Z             }
2026-06-15T15:10:07.8942308Z           ]
2026-06-15T15:10:07.8942409Z         },
2026-06-15T15:10:07.8942508Z         "int": {
2026-06-15T15:10:07.8942628Z           "complete": true,
2026-06-15T15:10:07.8942729Z           "evidence": [
2026-06-15T15:10:07.8942833Z             {
2026-06-15T15:10:07.8943011Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T15:10:07.8943110Z               "line": 19
2026-06-15T15:10:07.8943200Z             }
2026-06-15T15:10:07.8943296Z           ]
2026-06-15T15:10:07.8943397Z         },
2026-06-15T15:10:07.8943500Z         "unit": {
2026-06-15T15:10:07.8943618Z           "complete": true,
2026-06-15T15:10:07.8943719Z           "evidence": [
2026-06-15T15:10:07.8943826Z             {
2026-06-15T15:10:07.8943970Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T15:10:07.8944080Z               "line": 440
2026-06-15T15:10:07.8944178Z             },
2026-06-15T15:10:07.8944279Z             {
2026-06-15T15:10:07.8944418Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T15:10:07.8944531Z               "line": 551
2026-06-15T15:10:07.8944638Z             },
2026-06-15T15:10:07.8944742Z             {
2026-06-15T15:10:07.8944889Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T15:10:07.8944991Z               "line": 58
2026-06-15T15:10:07.8945090Z             },
2026-06-15T15:10:07.8945199Z             {
2026-06-15T15:10:07.8945334Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T15:10:07.8945438Z               "line": 77
2026-06-15T15:10:07.8945538Z             },
2026-06-15T15:10:07.8945639Z             {
2026-06-15T15:10:07.8945776Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T15:10:07.8945896Z               "line": 87
2026-06-15T15:10:07.8946005Z             },
2026-06-15T15:10:07.8946110Z             {
2026-06-15T15:10:07.8946250Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T15:10:07.8946357Z               "line": 94
2026-06-15T15:10:07.8946462Z             },
2026-06-15T15:10:07.8946675Z             {
2026-06-15T15:10:07.8946827Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8946937Z               "line": 691
2026-06-15T15:10:07.8947041Z             },
2026-06-15T15:10:07.8947136Z             {
2026-06-15T15:10:07.8947280Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T15:10:07.8947379Z               "line": 716
2026-06-15T15:10:07.8947485Z             }
2026-06-15T15:10:07.8947580Z           ]
2026-06-15T15:10:07.8947684Z         }
2026-06-15T15:10:07.8947785Z       }
2026-06-15T15:10:07.8947886Z     },
2026-06-15T15:10:07.8947990Z     {
2026-06-15T15:10:07.8948115Z       "id": "REQ-UPD-1",
2026-06-15T15:10:07.8948357Z       "title": "Peer-propagated update over P2P",
2026-06-15T15:10:07.8948478Z       "requiredStages": [
2026-06-15T15:10:07.8948586Z         "impl",
2026-06-15T15:10:07.8948682Z         "unit",
2026-06-15T15:10:07.8951587Z         "int"
2026-06-15T15:10:07.8951726Z       ],
2026-06-15T15:10:07.8951844Z       "stages": {
2026-06-15T15:10:07.8951957Z         "doc": {
2026-06-15T15:10:07.8952083Z           "complete": false,
2026-06-15T15:10:07.8952205Z           "evidence": []
2026-06-15T15:10:07.8952306Z         },
2026-06-15T15:10:07.8952411Z         "impl": {
2026-06-15T15:10:07.8952529Z           "complete": true,
2026-06-15T15:10:07.8952645Z           "evidence": [
2026-06-15T15:10:07.8952750Z             {
2026-06-15T15:10:07.8952921Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.8953031Z               "line": 28
2026-06-15T15:10:07.8953131Z             },
2026-06-15T15:10:07.8953231Z             {
2026-06-15T15:10:07.8953388Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.8953512Z               "line": 103
2026-06-15T15:10:07.8953618Z             },
2026-06-15T15:10:07.8953722Z             {
2026-06-15T15:10:07.8953870Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.8953980Z               "line": 342
2026-06-15T15:10:07.8954088Z             },
2026-06-15T15:10:07.8954193Z             {
2026-06-15T15:10:07.8954340Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.8954448Z               "line": 22
2026-06-15T15:10:07.8954558Z             },
2026-06-15T15:10:07.8954659Z             {
2026-06-15T15:10:07.8954806Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.8954912Z               "line": 207
2026-06-15T15:10:07.8955016Z             },
2026-06-15T15:10:07.8955120Z             {
2026-06-15T15:10:07.8955260Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.8955369Z               "line": 283
2026-06-15T15:10:07.8955474Z             },
2026-06-15T15:10:07.8955574Z             {
2026-06-15T15:10:07.8955725Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.8955832Z               "line": 340
2026-06-15T15:10:07.8955931Z             },
2026-06-15T15:10:07.8956040Z             {
2026-06-15T15:10:07.8956185Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T15:10:07.8956293Z               "line": 37
2026-06-15T15:10:07.8956389Z             }
2026-06-15T15:10:07.8956490Z           ]
2026-06-15T15:10:07.8956589Z         },
2026-06-15T15:10:07.8956699Z         "int": {
2026-06-15T15:10:07.8956819Z           "complete": true,
2026-06-15T15:10:07.8956927Z           "evidence": [
2026-06-15T15:10:07.8957031Z             {
2026-06-15T15:10:07.8957188Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T15:10:07.8957301Z               "line": 207
2026-06-15T15:10:07.8957406Z             },
2026-06-15T15:10:07.8957507Z             {
2026-06-15T15:10:07.8957668Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T15:10:07.8957769Z               "line": 988
2026-06-15T15:10:07.8957870Z             }
2026-06-15T15:10:07.8957973Z           ]
2026-06-15T15:10:07.8958074Z         },
2026-06-15T15:10:07.8958179Z         "unit": {
2026-06-15T15:10:07.8958297Z           "complete": true,
2026-06-15T15:10:07.8958551Z           "evidence": [
2026-06-15T15:10:07.8958655Z             {
2026-06-15T15:10:07.8958812Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.8958922Z               "line": 490
2026-06-15T15:10:07.8959099Z             },
2026-06-15T15:10:07.8959204Z             {
2026-06-15T15:10:07.8959343Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.8959456Z               "line": 616
2026-06-15T15:10:07.8959560Z             },
2026-06-15T15:10:07.8959675Z             {
2026-06-15T15:10:07.8959830Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T15:10:07.8959944Z               "line": 277
2026-06-15T15:10:07.8960154Z             },
2026-06-15T15:10:07.8960259Z             {
2026-06-15T15:10:07.8960407Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T15:10:07.8960511Z               "line": 124
2026-06-15T15:10:07.8960617Z             },
2026-06-15T15:10:07.8960712Z             {
2026-06-15T15:10:07.8960864Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T15:10:07.8960966Z               "line": 200
2026-06-15T15:10:07.8961074Z             }
2026-06-15T15:10:07.8961165Z           ]
2026-06-15T15:10:07.8961266Z         }
2026-06-15T15:10:07.8961370Z       }
2026-06-15T15:10:07.8961475Z     },
2026-06-15T15:10:07.8961576Z     {
2026-06-15T15:10:07.8961689Z       "id": "REQ-UPD-2",
2026-06-15T15:10:07.8961872Z       "title": "All binaries signature-verified before handoff",
2026-06-15T15:10:07.8961994Z       "requiredStages": [
2026-06-15T15:10:07.8962090Z         "impl",
2026-06-15T15:10:07.8962191Z         "unit"
2026-06-15T15:10:07.8962295Z       ],
2026-06-15T15:10:07.8962399Z       "stages": {
2026-06-15T15:10:07.8962494Z         "doc": {
2026-06-15T15:10:07.8962614Z           "complete": false,
2026-06-15T15:10:07.8962718Z           "evidence": []
2026-06-15T15:10:07.8962818Z         },
2026-06-15T15:10:07.8962919Z         "impl": {
2026-06-15T15:10:07.8963033Z           "complete": true,
2026-06-15T15:10:07.8963157Z           "evidence": [
2026-06-15T15:10:07.8963262Z             {
2026-06-15T15:10:07.8963409Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.8963521Z               "line": 343
2026-06-15T15:10:07.8963624Z             },
2026-06-15T15:10:07.8963724Z             {
2026-06-15T15:10:07.8963859Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.8963972Z               "line": 476
2026-06-15T15:10:07.8964072Z             },
2026-06-15T15:10:07.8964174Z             {
2026-06-15T15:10:07.8964325Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8964440Z               "line": 29
2026-06-15T15:10:07.8964535Z             },
2026-06-15T15:10:07.8964639Z             {
2026-06-15T15:10:07.8964787Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8964890Z               "line": 271
2026-06-15T15:10:07.8964994Z             },
2026-06-15T15:10:07.8965094Z             {
2026-06-15T15:10:07.8965237Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8965346Z               "line": 288
2026-06-15T15:10:07.8965447Z             },
2026-06-15T15:10:07.8965543Z             {
2026-06-15T15:10:07.8965685Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8965791Z               "line": 408
2026-06-15T15:10:07.8965895Z             },
2026-06-15T15:10:07.8965990Z             {
2026-06-15T15:10:07.8966134Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8966234Z               "line": 540
2026-06-15T15:10:07.8966344Z             },
2026-06-15T15:10:07.8966454Z             {
2026-06-15T15:10:07.8966596Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T15:10:07.8966707Z               "line": 155
2026-06-15T15:10:07.8966811Z             }
2026-06-15T15:10:07.8966906Z           ]
2026-06-15T15:10:07.8967008Z         },
2026-06-15T15:10:07.8967098Z         "int": {
2026-06-15T15:10:07.8967337Z           "complete": false,
2026-06-15T15:10:07.8967441Z           "evidence": []
2026-06-15T15:10:07.8967539Z         },
2026-06-15T15:10:07.8967639Z         "unit": {
2026-06-15T15:10:07.8967753Z           "complete": true,
2026-06-15T15:10:07.8967861Z           "evidence": [
2026-06-15T15:10:07.8967957Z             {
2026-06-15T15:10:07.8968101Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8968204Z               "line": 697
2026-06-15T15:10:07.8968301Z             },
2026-06-15T15:10:07.8968400Z             {
2026-06-15T15:10:07.8968543Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8968729Z               "line": 758
2026-06-15T15:10:07.8968829Z             },
2026-06-15T15:10:07.8968930Z             {
2026-06-15T15:10:07.8969153Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8969269Z               "line": 772
2026-06-15T15:10:07.8969364Z             },
2026-06-15T15:10:07.8969468Z             {
2026-06-15T15:10:07.8969612Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8969725Z               "line": 788
2026-06-15T15:10:07.8969821Z             },
2026-06-15T15:10:07.8969922Z             {
2026-06-15T15:10:07.8970068Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8970177Z               "line": 879
2026-06-15T15:10:07.8970278Z             },
2026-06-15T15:10:07.8970380Z             {
2026-06-15T15:10:07.8970524Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T15:10:07.8970634Z               "line": 414
2026-06-15T15:10:07.8970737Z             },
2026-06-15T15:10:07.8970833Z             {
2026-06-15T15:10:07.8970972Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T15:10:07.8971095Z               "line": 427
2026-06-15T15:10:07.8971197Z             },
2026-06-15T15:10:07.8971301Z             {
2026-06-15T15:10:07.8971458Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T15:10:07.8971554Z               "line": 410
2026-06-15T15:10:07.8971659Z             }
2026-06-15T15:10:07.8971758Z           ]
2026-06-15T15:10:07.8971855Z         }
2026-06-15T15:10:07.8971954Z       }
2026-06-15T15:10:07.8972054Z     },
2026-06-15T15:10:07.8972155Z     {
2026-06-15T15:10:07.8972273Z       "id": "REQ-UPD-3",
2026-06-15T15:10:07.8972475Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-15T15:10:07.8972592Z       "requiredStages": [
2026-06-15T15:10:07.8972693Z         "impl",
2026-06-15T15:10:07.8972799Z         "unit",
2026-06-15T15:10:07.8972907Z         "int"
2026-06-15T15:10:07.8973002Z       ],
2026-06-15T15:10:07.8973112Z       "stages": {
2026-06-15T15:10:07.8973213Z         "doc": {
2026-06-15T15:10:07.8973321Z           "complete": false,
2026-06-15T15:10:07.8973431Z           "evidence": []
2026-06-15T15:10:07.8973527Z         },
2026-06-15T15:10:07.8973641Z         "impl": {
2026-06-15T15:10:07.8973756Z           "complete": true,
2026-06-15T15:10:07.8973861Z           "evidence": [
2026-06-15T15:10:07.8973965Z             {
2026-06-15T15:10:07.8974118Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.8974218Z               "line": 40
2026-06-15T15:10:07.8974317Z             },
2026-06-15T15:10:07.8974419Z             {
2026-06-15T15:10:07.8974566Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.8974672Z               "line": 87
2026-06-15T15:10:07.8974776Z             },
2026-06-15T15:10:07.8974875Z             {
2026-06-15T15:10:07.8975015Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T15:10:07.8975119Z               "line": 993
2026-06-15T15:10:07.8975223Z             },
2026-06-15T15:10:07.8975323Z             {
2026-06-15T15:10:07.8975464Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T15:10:07.8975577Z               "line": 1085
2026-06-15T15:10:07.8975684Z             },
2026-06-15T15:10:07.8975779Z             {
2026-06-15T15:10:07.8976032Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T15:10:07.8976146Z               "line": 26
2026-06-15T15:10:07.8976240Z             },
2026-06-15T15:10:07.8976342Z             {
2026-06-15T15:10:07.8976479Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T15:10:07.8976589Z               "line": 114
2026-06-15T15:10:07.8976694Z             },
2026-06-15T15:10:07.8976799Z             {
2026-06-15T15:10:07.8976938Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T15:10:07.8977032Z               "line": 246
2026-06-15T15:10:07.8977137Z             },
2026-06-15T15:10:07.8977238Z             {
2026-06-15T15:10:07.8977466Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8977582Z               "line": 2180
2026-06-15T15:10:07.8977681Z             }
2026-06-15T15:10:07.8977786Z           ]
2026-06-15T15:10:07.8977887Z         },
2026-06-15T15:10:07.8977987Z         "int": {
2026-06-15T15:10:07.8978104Z           "complete": true,
2026-06-15T15:10:07.8978229Z           "evidence": [
2026-06-15T15:10:07.8978332Z             {
2026-06-15T15:10:07.8978469Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T15:10:07.8978569Z               "line": 58
2026-06-15T15:10:07.8978670Z             }
2026-06-15T15:10:07.8978769Z           ]
2026-06-15T15:10:07.8978870Z         },
2026-06-15T15:10:07.8979051Z         "unit": {
2026-06-15T15:10:07.8979166Z           "complete": true,
2026-06-15T15:10:07.8979285Z           "evidence": [
2026-06-15T15:10:07.8979384Z             {
2026-06-15T15:10:07.8979528Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.8979632Z               "line": 532
2026-06-15T15:10:07.8979742Z             },
2026-06-15T15:10:07.8979843Z             {
2026-06-15T15:10:07.8979990Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.8980105Z               "line": 583
2026-06-15T15:10:07.8980206Z             },
2026-06-15T15:10:07.8980309Z             {
2026-06-15T15:10:07.8980440Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.8980558Z               "line": 651
2026-06-15T15:10:07.8980657Z             },
2026-06-15T15:10:07.8980762Z             {
2026-06-15T15:10:07.8980899Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T15:10:07.8981012Z               "line": 1076
2026-06-15T15:10:07.8981112Z             },
2026-06-15T15:10:07.8981214Z             {
2026-06-15T15:10:07.8981350Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T15:10:07.8981452Z               "line": 271
2026-06-15T15:10:07.8981547Z             },
2026-06-15T15:10:07.8981641Z             {
2026-06-15T15:10:07.8981790Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T15:10:07.8981900Z               "line": 295
2026-06-15T15:10:07.8981999Z             },
2026-06-15T15:10:07.8982100Z             {
2026-06-15T15:10:07.8982242Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T15:10:07.8982347Z               "line": 316
2026-06-15T15:10:07.8982448Z             },
2026-06-15T15:10:07.8982548Z             {
2026-06-15T15:10:07.8982692Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T15:10:07.8982796Z               "line": 332
2026-06-15T15:10:07.8982895Z             }
2026-06-15T15:10:07.8982992Z           ]
2026-06-15T15:10:07.8983092Z         }
2026-06-15T15:10:07.8983196Z       }
2026-06-15T15:10:07.8983292Z     },
2026-06-15T15:10:07.8983388Z     {
2026-06-15T15:10:07.8983491Z       "id": "REQ-UPD-4",
2026-06-15T15:10:07.8983691Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-15T15:10:07.8983805Z       "requiredStages": [
2026-06-15T15:10:07.8983910Z         "impl",
2026-06-15T15:10:07.8984011Z         "unit"
2026-06-15T15:10:07.8984111Z       ],
2026-06-15T15:10:07.8984225Z       "stages": {
2026-06-15T15:10:07.8984331Z         "doc": {
2026-06-15T15:10:07.8984445Z           "complete": false,
2026-06-15T15:10:07.8984558Z           "evidence": []
2026-06-15T15:10:07.8984759Z         },
2026-06-15T15:10:07.8984873Z         "impl": {
2026-06-15T15:10:07.8984980Z           "complete": true,
2026-06-15T15:10:07.8985093Z           "evidence": [
2026-06-15T15:10:07.8985193Z             {
2026-06-15T15:10:07.8985346Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.8985455Z               "line": 41
2026-06-15T15:10:07.8985561Z             },
2026-06-15T15:10:07.8985665Z             {
2026-06-15T15:10:07.8985806Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.8985921Z               "line": 88
2026-06-15T15:10:07.8986029Z             },
2026-06-15T15:10:07.8986253Z             {
2026-06-15T15:10:07.8986401Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T15:10:07.8986501Z               "line": 23
2026-06-15T15:10:07.8986606Z             },
2026-06-15T15:10:07.8986701Z             {
2026-06-15T15:10:07.8986844Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T15:10:07.8986959Z               "line": 56
2026-06-15T15:10:07.8987058Z             },
2026-06-15T15:10:07.8987154Z             {
2026-06-15T15:10:07.8987297Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T15:10:07.8987406Z               "line": 77
2026-06-15T15:10:07.8987513Z             },
2026-06-15T15:10:07.8987616Z             {
2026-06-15T15:10:07.8987754Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T15:10:07.8987865Z               "line": 186
2026-06-15T15:10:07.8987964Z             },
2026-06-15T15:10:07.8988069Z             {
2026-06-15T15:10:07.8988213Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T15:10:07.8988317Z               "line": 108
2026-06-15T15:10:07.8988414Z             },
2026-06-15T15:10:07.8988509Z             {
2026-06-15T15:10:07.8988650Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.8988764Z               "line": 180
2026-06-15T15:10:07.8988864Z             },
2026-06-15T15:10:07.8989043Z             {
2026-06-15T15:10:07.8989168Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8989282Z               "line": 2179
2026-06-15T15:10:07.8989382Z             }
2026-06-15T15:10:07.8989483Z           ]
2026-06-15T15:10:07.8989582Z         },
2026-06-15T15:10:07.8989682Z         "int": {
2026-06-15T15:10:07.8989802Z           "complete": false,
2026-06-15T15:10:07.8989911Z           "evidence": []
2026-06-15T15:10:07.8990017Z         },
2026-06-15T15:10:07.8990117Z         "unit": {
2026-06-15T15:10:07.8990236Z           "complete": true,
2026-06-15T15:10:07.8990350Z           "evidence": [
2026-06-15T15:10:07.8990451Z             {
2026-06-15T15:10:07.8990607Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.8990723Z               "line": 579
2026-06-15T15:10:07.8990822Z             },
2026-06-15T15:10:07.8990922Z             {
2026-06-15T15:10:07.8991062Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.8991179Z               "line": 704
2026-06-15T15:10:07.8991274Z             },
2026-06-15T15:10:07.8991369Z             {
2026-06-15T15:10:07.8991515Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T15:10:07.8991619Z               "line": 384
2026-06-15T15:10:07.8991721Z             },
2026-06-15T15:10:07.8991825Z             {
2026-06-15T15:10:07.8991973Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T15:10:07.8992083Z               "line": 102
2026-06-15T15:10:07.8992182Z             },
2026-06-15T15:10:07.8992283Z             {
2026-06-15T15:10:07.8992426Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T15:10:07.8992530Z               "line": 123
2026-06-15T15:10:07.8992627Z             },
2026-06-15T15:10:07.8992726Z             {
2026-06-15T15:10:07.8992864Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T15:10:07.8992970Z               "line": 142
2026-06-15T15:10:07.8993074Z             },
2026-06-15T15:10:07.8993294Z             {
2026-06-15T15:10:07.8993432Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T15:10:07.8993537Z               "line": 413
2026-06-15T15:10:07.8993629Z             },
2026-06-15T15:10:07.8993731Z             {
2026-06-15T15:10:07.8993872Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T15:10:07.8993981Z               "line": 566
2026-06-15T15:10:07.8994084Z             },
2026-06-15T15:10:07.8994184Z             {
2026-06-15T15:10:07.8994319Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.8994432Z               "line": 6754
2026-06-15T15:10:07.8994533Z             }
2026-06-15T15:10:07.8994628Z           ]
2026-06-15T15:10:07.8994828Z         }
2026-06-15T15:10:07.8994938Z       }
2026-06-15T15:10:07.8995038Z     },
2026-06-15T15:10:07.8995143Z     {
2026-06-15T15:10:07.8995262Z       "id": "REQ-UPD-5",
2026-06-15T15:10:07.8995419Z       "title": "spt-core ripple-updates registered adapters",
2026-06-15T15:10:07.8995535Z       "requiredStages": [
2026-06-15T15:10:07.8995648Z         "impl",
2026-06-15T15:10:07.8995753Z         "unit"
2026-06-15T15:10:07.8995854Z       ],
2026-06-15T15:10:07.8995952Z       "stages": {
2026-06-15T15:10:07.8996053Z         "doc": {
2026-06-15T15:10:07.8996169Z           "complete": false,
2026-06-15T15:10:07.8996281Z           "evidence": []
2026-06-15T15:10:07.8996376Z         },
2026-06-15T15:10:07.8996481Z         "impl": {
2026-06-15T15:10:07.8996589Z           "complete": true,
2026-06-15T15:10:07.8996698Z           "evidence": [
2026-06-15T15:10:07.8996794Z             {
2026-06-15T15:10:07.8996951Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.8997070Z               "line": 27
2026-06-15T15:10:07.8997176Z             },
2026-06-15T15:10:07.8997280Z             {
2026-06-15T15:10:07.8997439Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.8997548Z               "line": 82
2026-06-15T15:10:07.8997647Z             },
2026-06-15T15:10:07.8997753Z             {
2026-06-15T15:10:07.8997905Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.8998009Z               "line": 134
2026-06-15T15:10:07.8998111Z             },
2026-06-15T15:10:07.8998210Z             {
2026-06-15T15:10:07.8998354Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8998458Z               "line": 492
2026-06-15T15:10:07.8998558Z             },
2026-06-15T15:10:07.8998659Z             {
2026-06-15T15:10:07.8998796Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.8998916Z               "line": 528
2026-06-15T15:10:07.8999102Z             }
2026-06-15T15:10:07.8999215Z           ]
2026-06-15T15:10:07.8999320Z         },
2026-06-15T15:10:07.8999419Z         "int": {
2026-06-15T15:10:07.8999537Z           "complete": false,
2026-06-15T15:10:07.8999651Z           "evidence": []
2026-06-15T15:10:07.8999752Z         },
2026-06-15T15:10:07.8999851Z         "unit": {
2026-06-15T15:10:07.8999971Z           "complete": true,
2026-06-15T15:10:07.9000086Z           "evidence": [
2026-06-15T15:10:07.9000185Z             {
2026-06-15T15:10:07.9000348Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.9000448Z               "line": 232
2026-06-15T15:10:07.9000557Z             },
2026-06-15T15:10:07.9000658Z             {
2026-06-15T15:10:07.9000810Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.9000925Z               "line": 246
2026-06-15T15:10:07.9001025Z             },
2026-06-15T15:10:07.9001120Z             {
2026-06-15T15:10:07.9001269Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.9001387Z               "line": 260
2026-06-15T15:10:07.9001492Z             },
2026-06-15T15:10:07.9001594Z             {
2026-06-15T15:10:07.9001749Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.9001848Z               "line": 274
2026-06-15T15:10:07.9001953Z             },
2026-06-15T15:10:07.9002160Z             {
2026-06-15T15:10:07.9002314Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T15:10:07.9002428Z               "line": 308
2026-06-15T15:10:07.9002528Z             },
2026-06-15T15:10:07.9002629Z             {
2026-06-15T15:10:07.9002780Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T15:10:07.9002901Z               "line": 911
2026-06-15T15:10:07.9003000Z             }
2026-06-15T15:10:07.9003099Z           ]
2026-06-15T15:10:07.9003206Z         }
2026-06-15T15:10:07.9003305Z       }
2026-06-15T15:10:07.9003410Z     },
2026-06-15T15:10:07.9003512Z     {
2026-06-15T15:10:07.9003729Z       "id": "REQ-UPD-6",
2026-06-15T15:10:07.9004602Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-15T15:10:07.9004725Z       "requiredStages": [
2026-06-15T15:10:07.9004826Z         "doc",
2026-06-15T15:10:07.9004926Z         "impl",
2026-06-15T15:10:07.9005025Z         "unit",
2026-06-15T15:10:07.9005146Z         "int"
2026-06-15T15:10:07.9005260Z       ],
2026-06-15T15:10:07.9005359Z       "stages": {
2026-06-15T15:10:07.9005465Z         "doc": {
2026-06-15T15:10:07.9005579Z           "complete": true,
2026-06-15T15:10:07.9005688Z           "evidence": [
2026-06-15T15:10:07.9005794Z             {
2026-06-15T15:10:07.9005959Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T15:10:07.9006075Z               "line": 3
2026-06-15T15:10:07.9006184Z             },
2026-06-15T15:10:07.9006284Z             {
2026-06-15T15:10:07.9006424Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-15T15:10:07.9006518Z               "line": 3
2026-06-15T15:10:07.9006628Z             },
2026-06-15T15:10:07.9006734Z             {
2026-06-15T15:10:07.9006918Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-15T15:10:07.9007027Z               "line": 3
2026-06-15T15:10:07.9007131Z             }
2026-06-15T15:10:07.9007240Z           ]
2026-06-15T15:10:07.9007340Z         },
2026-06-15T15:10:07.9007451Z         "impl": {
2026-06-15T15:10:07.9007563Z           "complete": true,
2026-06-15T15:10:07.9007678Z           "evidence": [
2026-06-15T15:10:07.9007784Z             {
2026-06-15T15:10:07.9007926Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.9008041Z               "line": 76
2026-06-15T15:10:07.9008146Z             },
2026-06-15T15:10:07.9008250Z             {
2026-06-15T15:10:07.9008413Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.9008526Z               "line": 212
2026-06-15T15:10:07.9008628Z             },
2026-06-15T15:10:07.9008727Z             {
2026-06-15T15:10:07.9008884Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.9009065Z               "line": 69
2026-06-15T15:10:07.9009170Z             },
2026-06-15T15:10:07.9009272Z             {
2026-06-15T15:10:07.9009433Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.9009549Z               "line": 133
2026-06-15T15:10:07.9009649Z             },
2026-06-15T15:10:07.9009751Z             {
2026-06-15T15:10:07.9009889Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.9010008Z               "line": 243
2026-06-15T15:10:07.9010106Z             },
2026-06-15T15:10:07.9010211Z             {
2026-06-15T15:10:07.9010369Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.9010483Z               "line": 406
2026-06-15T15:10:07.9010598Z             },
2026-06-15T15:10:07.9010698Z             {
2026-06-15T15:10:07.9010851Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.9010941Z               "line": 534
2026-06-15T15:10:07.9011045Z             },
2026-06-15T15:10:07.9011146Z             {
2026-06-15T15:10:07.9011394Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.9011500Z               "line": 548
2026-06-15T15:10:07.9011604Z             },
2026-06-15T15:10:07.9011709Z             {
2026-06-15T15:10:07.9011853Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.9011961Z               "line": 603
2026-06-15T15:10:07.9012071Z             },
2026-06-15T15:10:07.9012173Z             {
2026-06-15T15:10:07.9012318Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.9012418Z               "line": 634
2026-06-15T15:10:07.9012527Z             },
2026-06-15T15:10:07.9012735Z             {
2026-06-15T15:10:07.9012889Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T15:10:07.9013007Z               "line": 137
2026-06-15T15:10:07.9013113Z             },
2026-06-15T15:10:07.9013213Z             {
2026-06-15T15:10:07.9013364Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T15:10:07.9013470Z               "line": 184
2026-06-15T15:10:07.9013570Z             },
2026-06-15T15:10:07.9013674Z             {
2026-06-15T15:10:07.9013832Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9013937Z               "line": 78
2026-06-15T15:10:07.9014037Z             },
2026-06-15T15:10:07.9014142Z             {
2026-06-15T15:10:07.9014280Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9014387Z               "line": 114
2026-06-15T15:10:07.9014485Z             },
2026-06-15T15:10:07.9014585Z             {
2026-06-15T15:10:07.9014725Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9014847Z               "line": 185
2026-06-15T15:10:07.9014948Z             },
2026-06-15T15:10:07.9015049Z             {
2026-06-15T15:10:07.9015190Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9015299Z               "line": 260
2026-06-15T15:10:07.9015406Z             },
2026-06-15T15:10:07.9015510Z             {
2026-06-15T15:10:07.9015663Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9015767Z               "line": 292
2026-06-15T15:10:07.9015867Z             },
2026-06-15T15:10:07.9015978Z             {
2026-06-15T15:10:07.9016121Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9016239Z               "line": 323
2026-06-15T15:10:07.9016340Z             },
2026-06-15T15:10:07.9016444Z             {
2026-06-15T15:10:07.9016578Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9016693Z               "line": 346
2026-06-15T15:10:07.9016788Z             },
2026-06-15T15:10:07.9016888Z             {
2026-06-15T15:10:07.9017045Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9017150Z               "line": 388
2026-06-15T15:10:07.9017251Z             },
2026-06-15T15:10:07.9017346Z             {
2026-06-15T15:10:07.9017487Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9017606Z               "line": 398
2026-06-15T15:10:07.9017715Z             },
2026-06-15T15:10:07.9017818Z             {
2026-06-15T15:10:07.9017958Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9018076Z               "line": 410
2026-06-15T15:10:07.9018176Z             },
2026-06-15T15:10:07.9018273Z             {
2026-06-15T15:10:07.9018414Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9018520Z               "line": 420
2026-06-15T15:10:07.9018620Z             },
2026-06-15T15:10:07.9018720Z             {
2026-06-15T15:10:07.9018859Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9019058Z               "line": 439
2026-06-15T15:10:07.9019159Z             },
2026-06-15T15:10:07.9019269Z             {
2026-06-15T15:10:07.9019421Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9019522Z               "line": 449
2026-06-15T15:10:07.9019740Z             },
2026-06-15T15:10:07.9019842Z             {
2026-06-15T15:10:07.9019978Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9020089Z               "line": 94
2026-06-15T15:10:07.9020190Z             },
2026-06-15T15:10:07.9020288Z             {
2026-06-15T15:10:07.9020431Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9020535Z               "line": 120
2026-06-15T15:10:07.9020638Z             },
2026-06-15T15:10:07.9020738Z             {
2026-06-15T15:10:07.9020877Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9020986Z               "line": 135
2026-06-15T15:10:07.9021191Z             },
2026-06-15T15:10:07.9021300Z             {
2026-06-15T15:10:07.9021450Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9021564Z               "line": 162
2026-06-15T15:10:07.9021658Z             },
2026-06-15T15:10:07.9021750Z             {
2026-06-15T15:10:07.9021893Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9022002Z               "line": 174
2026-06-15T15:10:07.9022099Z             },
2026-06-15T15:10:07.9022202Z             {
2026-06-15T15:10:07.9022346Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9022465Z               "line": 185
2026-06-15T15:10:07.9022564Z             },
2026-06-15T15:10:07.9022661Z             {
2026-06-15T15:10:07.9022803Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9022916Z               "line": 451
2026-06-15T15:10:07.9023021Z             },
2026-06-15T15:10:07.9023116Z             {
2026-06-15T15:10:07.9023257Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9023372Z               "line": 555
2026-06-15T15:10:07.9023482Z             },
2026-06-15T15:10:07.9023586Z             {
2026-06-15T15:10:07.9023730Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T15:10:07.9023839Z               "line": 171
2026-06-15T15:10:07.9023944Z             },
2026-06-15T15:10:07.9024044Z             {
2026-06-15T15:10:07.9024187Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T15:10:07.9024303Z               "line": 65
2026-06-15T15:10:07.9024406Z             },
2026-06-15T15:10:07.9024506Z             {
2026-06-15T15:10:07.9024651Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T15:10:07.9024755Z               "line": 71
2026-06-15T15:10:07.9024864Z             },
2026-06-15T15:10:07.9024966Z             {
2026-06-15T15:10:07.9025112Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T15:10:07.9025213Z               "line": 77
2026-06-15T15:10:07.9025327Z             },
2026-06-15T15:10:07.9025436Z             {
2026-06-15T15:10:07.9025576Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.9025680Z               "line": 778
2026-06-15T15:10:07.9025779Z             },
2026-06-15T15:10:07.9025883Z             {
2026-06-15T15:10:07.9026009Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.9026131Z               "line": 795
2026-06-15T15:10:07.9026237Z             },
2026-06-15T15:10:07.9026342Z             {
2026-06-15T15:10:07.9026474Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.9026580Z               "line": 838
2026-06-15T15:10:07.9026685Z             },
2026-06-15T15:10:07.9026784Z             {
2026-06-15T15:10:07.9026923Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.9027038Z               "line": 981
2026-06-15T15:10:07.9027138Z             },
2026-06-15T15:10:07.9027243Z             {
2026-06-15T15:10:07.9027367Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.9027487Z               "line": 1131
2026-06-15T15:10:07.9027591Z             }
2026-06-15T15:10:07.9027700Z           ]
2026-06-15T15:10:07.9027796Z         },
2026-06-15T15:10:07.9027901Z         "int": {
2026-06-15T15:10:07.9028023Z           "complete": true,
2026-06-15T15:10:07.9030792Z           "evidence": [
2026-06-15T15:10:07.9031081Z             {
2026-06-15T15:10:07.9031250Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T15:10:07.9031365Z               "line": 569
2026-06-15T15:10:07.9031462Z             },
2026-06-15T15:10:07.9031560Z             {
2026-06-15T15:10:07.9031705Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T15:10:07.9031819Z               "line": 135
2026-06-15T15:10:07.9031923Z             }
2026-06-15T15:10:07.9032024Z           ]
2026-06-15T15:10:07.9032129Z         },
2026-06-15T15:10:07.9032238Z         "unit": {
2026-06-15T15:10:07.9032358Z           "complete": true,
2026-06-15T15:10:07.9032472Z           "evidence": [
2026-06-15T15:10:07.9032668Z             {
2026-06-15T15:10:07.9032838Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.9032944Z               "line": 624
2026-06-15T15:10:07.9033049Z             },
2026-06-15T15:10:07.9033158Z             {
2026-06-15T15:10:07.9033293Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.9033415Z               "line": 673
2026-06-15T15:10:07.9033519Z             },
2026-06-15T15:10:07.9033624Z             {
2026-06-15T15:10:07.9033770Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T15:10:07.9033875Z               "line": 696
2026-06-15T15:10:07.9033971Z             },
2026-06-15T15:10:07.9034070Z             {
2026-06-15T15:10:07.9034213Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9034318Z               "line": 513
2026-06-15T15:10:07.9034418Z             },
2026-06-15T15:10:07.9034519Z             {
2026-06-15T15:10:07.9034657Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9034780Z               "line": 638
2026-06-15T15:10:07.9034877Z             },
2026-06-15T15:10:07.9034981Z             {
2026-06-15T15:10:07.9035119Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9035235Z               "line": 675
2026-06-15T15:10:07.9035344Z             },
2026-06-15T15:10:07.9035448Z             {
2026-06-15T15:10:07.9035601Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9035710Z               "line": 894
2026-06-15T15:10:07.9035816Z             },
2026-06-15T15:10:07.9035920Z             {
2026-06-15T15:10:07.9036064Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9036175Z               "line": 916
2026-06-15T15:10:07.9036277Z             },
2026-06-15T15:10:07.9036381Z             {
2026-06-15T15:10:07.9036526Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9036639Z               "line": 933
2026-06-15T15:10:07.9036739Z             },
2026-06-15T15:10:07.9036840Z             {
2026-06-15T15:10:07.9036978Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9037078Z               "line": 948
2026-06-15T15:10:07.9037183Z             },
2026-06-15T15:10:07.9037283Z             {
2026-06-15T15:10:07.9037432Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9037541Z               "line": 974
2026-06-15T15:10:07.9037645Z             },
2026-06-15T15:10:07.9037747Z             {
2026-06-15T15:10:07.9037893Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T15:10:07.9038003Z               "line": 457
2026-06-15T15:10:07.9038100Z             },
2026-06-15T15:10:07.9038213Z             {
2026-06-15T15:10:07.9038371Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T15:10:07.9038498Z               "line": 338
2026-06-15T15:10:07.9038607Z             },
2026-06-15T15:10:07.9038703Z             {
2026-06-15T15:10:07.9038839Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9039145Z               "line": 8946
2026-06-15T15:10:07.9039239Z             },
2026-06-15T15:10:07.9039340Z             {
2026-06-15T15:10:07.9039469Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.9039582Z               "line": 1260
2026-06-15T15:10:07.9039854Z             },
2026-06-15T15:10:07.9039955Z             {
2026-06-15T15:10:07.9040093Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T15:10:07.9040207Z               "line": 130
2026-06-15T15:10:07.9040332Z             }
2026-06-15T15:10:07.9040436Z           ]
2026-06-15T15:10:07.9040545Z         }
2026-06-15T15:10:07.9040656Z       }
2026-06-15T15:10:07.9040809Z     },
2026-06-15T15:10:07.9040934Z     {
2026-06-15T15:10:07.9041047Z       "id": "REQ-UPD-7",
2026-06-15T15:10:07.9043219Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-15T15:10:07.9043466Z       "requiredStages": [
2026-06-15T15:10:07.9043590Z         "impl",
2026-06-15T15:10:07.9043699Z         "unit"
2026-06-15T15:10:07.9043796Z       ],
2026-06-15T15:10:07.9043905Z       "stages": {
2026-06-15T15:10:07.9044008Z         "doc": {
2026-06-15T15:10:07.9044127Z           "complete": false,
2026-06-15T15:10:07.9044236Z           "evidence": []
2026-06-15T15:10:07.9044335Z         },
2026-06-15T15:10:07.9044440Z         "impl": {
2026-06-15T15:10:07.9044560Z           "complete": true,
2026-06-15T15:10:07.9044678Z           "evidence": [
2026-06-15T15:10:07.9044783Z             {
2026-06-15T15:10:07.9044922Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9045026Z               "line": 2284
2026-06-15T15:10:07.9045127Z             }
2026-06-15T15:10:07.9045232Z           ]
2026-06-15T15:10:07.9045326Z         },
2026-06-15T15:10:07.9045432Z         "int": {
2026-06-15T15:10:07.9045531Z           "complete": false,
2026-06-15T15:10:07.9045636Z           "evidence": []
2026-06-15T15:10:07.9045742Z         },
2026-06-15T15:10:07.9045846Z         "unit": {
2026-06-15T15:10:07.9045956Z           "complete": true,
2026-06-15T15:10:07.9046057Z           "evidence": [
2026-06-15T15:10:07.9046157Z             {
2026-06-15T15:10:07.9046290Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9046406Z               "line": 8922
2026-06-15T15:10:07.9046509Z             }
2026-06-15T15:10:07.9046614Z           ]
2026-06-15T15:10:07.9046715Z         }
2026-06-15T15:10:07.9046824Z       }
2026-06-15T15:10:07.9046928Z     },
2026-06-15T15:10:07.9047033Z     {
2026-06-15T15:10:07.9047148Z       "id": "REQ-UPD-8",
2026-06-15T15:10:07.9049771Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-15T15:10:07.9049905Z       "requiredStages": [
2026-06-15T15:10:07.9050010Z         "impl",
2026-06-15T15:10:07.9050105Z         "unit"
2026-06-15T15:10:07.9050210Z       ],
2026-06-15T15:10:07.9050315Z       "stages": {
2026-06-15T15:10:07.9050414Z         "doc": {
2026-06-15T15:10:07.9050644Z           "complete": false,
2026-06-15T15:10:07.9050748Z           "evidence": []
2026-06-15T15:10:07.9050844Z         },
2026-06-15T15:10:07.9050953Z         "impl": {
2026-06-15T15:10:07.9051073Z           "complete": true,
2026-06-15T15:10:07.9051184Z           "evidence": [
2026-06-15T15:10:07.9051282Z             {
2026-06-15T15:10:07.9051445Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.9051555Z               "line": 77
2026-06-15T15:10:07.9051659Z             },
2026-06-15T15:10:07.9051760Z             {
2026-06-15T15:10:07.9051917Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9052025Z               "line": 49
2026-06-15T15:10:07.9052229Z             },
2026-06-15T15:10:07.9052333Z             {
2026-06-15T15:10:07.9052467Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9052577Z               "line": 152
2026-06-15T15:10:07.9052676Z             },
2026-06-15T15:10:07.9052777Z             {
2026-06-15T15:10:07.9052929Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9053033Z               "line": 215
2026-06-15T15:10:07.9053139Z             },
2026-06-15T15:10:07.9053244Z             {
2026-06-15T15:10:07.9053396Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9053497Z               "line": 230
2026-06-15T15:10:07.9053606Z             },
2026-06-15T15:10:07.9053697Z             {
2026-06-15T15:10:07.9053831Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9053945Z               "line": 247
2026-06-15T15:10:07.9054041Z             },
2026-06-15T15:10:07.9054146Z             {
2026-06-15T15:10:07.9054283Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9054394Z               "line": 269
2026-06-15T15:10:07.9054489Z             },
2026-06-15T15:10:07.9054592Z             {
2026-06-15T15:10:07.9054735Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9054852Z               "line": 66
2026-06-15T15:10:07.9054961Z             },
2026-06-15T15:10:07.9055057Z             {
2026-06-15T15:10:07.9055191Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T15:10:07.9055300Z               "line": 154
2026-06-15T15:10:07.9055401Z             },
2026-06-15T15:10:07.9055501Z             {
2026-06-15T15:10:07.9055624Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9055744Z               "line": 2168
2026-06-15T15:10:07.9055844Z             },
2026-06-15T15:10:07.9055939Z             {
2026-06-15T15:10:07.9056069Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9056173Z               "line": 2231
2026-06-15T15:10:07.9056288Z             },
2026-06-15T15:10:07.9056393Z             {
2026-06-15T15:10:07.9056525Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9056641Z               "line": 2241
2026-06-15T15:10:07.9056740Z             },
2026-06-15T15:10:07.9056840Z             {
2026-06-15T15:10:07.9056970Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9057078Z               "line": 2248
2026-06-15T15:10:07.9057179Z             },
2026-06-15T15:10:07.9057280Z             {
2026-06-15T15:10:07.9057403Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9057516Z               "line": 2285
2026-06-15T15:10:07.9057622Z             },
2026-06-15T15:10:07.9057718Z             {
2026-06-15T15:10:07.9057854Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.9057961Z               "line": 480
2026-06-15T15:10:07.9058056Z             },
2026-06-15T15:10:07.9058160Z             {
2026-06-15T15:10:07.9058285Z               "path": "crates/xtask/src/main.rs",
2026-06-15T15:10:07.9058398Z               "line": 494
2026-06-15T15:10:07.9058504Z             }
2026-06-15T15:10:07.9058609Z           ]
2026-06-15T15:10:07.9058709Z         },
2026-06-15T15:10:07.9058808Z         "int": {
2026-06-15T15:10:07.9058933Z           "complete": false,
2026-06-15T15:10:07.9059244Z           "evidence": []
2026-06-15T15:10:07.9059342Z         },
2026-06-15T15:10:07.9059443Z         "unit": {
2026-06-15T15:10:07.9059554Z           "complete": true,
2026-06-15T15:10:07.9059662Z           "evidence": [
2026-06-15T15:10:07.9059765Z             {
2026-06-15T15:10:07.9059913Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T15:10:07.9060021Z               "line": 476
2026-06-15T15:10:07.9060117Z             },
2026-06-15T15:10:07.9060217Z             {
2026-06-15T15:10:07.9060364Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T15:10:07.9060465Z               "line": 580
2026-06-15T15:10:07.9060570Z             },
2026-06-15T15:10:07.9060770Z             {
2026-06-15T15:10:07.9060899Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9061013Z               "line": 8924
2026-06-15T15:10:07.9061109Z             },
2026-06-15T15:10:07.9061209Z             {
2026-06-15T15:10:07.9061332Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9061438Z               "line": 8946
2026-06-15T15:10:07.9061542Z             }
2026-06-15T15:10:07.9061642Z           ]
2026-06-15T15:10:07.9061744Z         }
2026-06-15T15:10:07.9061847Z       }
2026-06-15T15:10:07.9061947Z     },
2026-06-15T15:10:07.9062049Z     {
2026-06-15T15:10:07.9062162Z       "id": "REQ-WHOAMI-1",
2026-06-15T15:10:07.9063875Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-15T15:10:07.9064014Z       "requiredStages": [
2026-06-15T15:10:07.9064119Z         "doc",
2026-06-15T15:10:07.9064223Z         "impl",
2026-06-15T15:10:07.9064320Z         "unit"
2026-06-15T15:10:07.9064419Z       ],
2026-06-15T15:10:07.9064524Z       "stages": {
2026-06-15T15:10:07.9064630Z         "doc": {
2026-06-15T15:10:07.9064738Z           "complete": true,
2026-06-15T15:10:07.9064844Z           "evidence": [
2026-06-15T15:10:07.9064945Z             {
2026-06-15T15:10:07.9065067Z               "path": "CONTEXT.md",
2026-06-15T15:10:07.9065185Z               "line": 651
2026-06-15T15:10:07.9065291Z             }
2026-06-15T15:10:07.9065389Z           ]
2026-06-15T15:10:07.9065488Z         },
2026-06-15T15:10:07.9065594Z         "impl": {
2026-06-15T15:10:07.9065713Z           "complete": true,
2026-06-15T15:10:07.9065831Z           "evidence": [
2026-06-15T15:10:07.9065942Z             {
2026-06-15T15:10:07.9066075Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9066184Z               "line": 2768
2026-06-15T15:10:07.9066290Z             },
2026-06-15T15:10:07.9066381Z             {
2026-06-15T15:10:07.9066519Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9066624Z               "line": 2780
2026-06-15T15:10:07.9066738Z             }
2026-06-15T15:10:07.9066833Z           ]
2026-06-15T15:10:07.9066929Z         },
2026-06-15T15:10:07.9067034Z         "int": {
2026-06-15T15:10:07.9067153Z           "complete": false,
2026-06-15T15:10:07.9067267Z           "evidence": []
2026-06-15T15:10:07.9067368Z         },
2026-06-15T15:10:07.9067478Z         "unit": {
2026-06-15T15:10:07.9067592Z           "complete": true,
2026-06-15T15:10:07.9067697Z           "evidence": [
2026-06-15T15:10:07.9067802Z             {
2026-06-15T15:10:07.9067935Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9068052Z               "line": 6451
2026-06-15T15:10:07.9068153Z             },
2026-06-15T15:10:07.9068254Z             {
2026-06-15T15:10:07.9068381Z               "path": "crates/spt/src/cli.rs",
2026-06-15T15:10:07.9068482Z               "line": 6467
2026-06-15T15:10:07.9068583Z             }
2026-06-15T15:10:07.9068769Z           ]
2026-06-15T15:10:07.9068878Z         }
2026-06-15T15:10:07.9069040Z       }
2026-06-15T15:10:07.9069141Z     }
2026-06-15T15:10:07.9069230Z   ],
2026-06-15T15:10:07.9069330Z   "findings": []
2026-06-15T15:10:07.9069432Z }
